Basic认证是一种较为简单的HTTP认证方式,客户端经过明文(Base64编码格式)传输用户名和密码到服务端进行认证,一般须要配合HTTPS来保证信息传输的安全。浏览器
1.当打开须要认证的页面时,会弹出一个对话框,要求输入用户名和密码缓存
2.使用Fiddler监听请求,能够看到在未进行认证或认证失败的状况下,服务端会返回401 Unauthorized
给客户端,并附带Challenge(质询),即在Response Header中添加WWW-Authenticate
标头,浏览器识别到Basic后弹出对话框
Realm
表示Web服务器中受保护文档的安全域(好比公司财务信息域和公司员工信息域),用来指示须要哪一个域的用户名和密码,用" "
包括起来(截图中没有,但最好加上)。安全
3.输入正确的用户名和密码,认证成功后,浏览器会将凭据信息缓存起来,那么之后再进入时,无需重复手动输入用户名和密码。
查看HTTP请求,能够看到Request Header中添加了Authorization
标头,格式为:Authorization: <type> <credentials>
服务器
1.用户名和密码明文(Base64)传输,须要配合HTTPS来保证信息传输的安全。
2.即便密码被强加密,第三方仍可经过加密后的用户名和密码进行重放攻击。
3.没有提供任何针对代理和中间节点的防御措施。
4.假冒服务器很容易骗过认证,诱导用户输入用户名和密码。
接下来,我会带你们一块儿去了解更为安全的摘要认证——Digest。编码