HTTP认证之基本认证——Basic(一)

1、概述

Basic认证是一种较为简单的HTTP认证方式,客户端经过明文(Base64编码格式)传输用户名和密码到服务端进行认证,一般须要配合HTTPS来保证信息传输的安全。浏览器

image

2、剖析

1.当打开须要认证的页面时,会弹出一个对话框,要求输入用户名和密码缓存

image

2.使用Fiddler监听请求,能够看到在未进行认证或认证失败的状况下,服务端会返回401 Unauthorized给客户端,并附带Challenge(质询),即在Response Header中添加WWW-Authenticate标头,浏览器识别到Basic后弹出对话框
Realm表示Web服务器中受保护文档的安全域(好比公司财务信息域和公司员工信息域),用来指示须要哪一个域的用户名和密码,用" "包括起来(截图中没有,但最好加上)。安全

3.输入正确的用户名和密码,认证成功后,浏览器会将凭据信息缓存起来,那么之后再进入时,无需重复手动输入用户名和密码。
查看HTTP请求,能够看到Request Header中添加了Authorization标头,格式为:Authorization: <type> <credentials>服务器

  • 类型为“Basic”
  • 凭证为“MTIzOjEyMw==”,是经过将“用户名:密码”格式的字符串通过的Base64编码获得的。而Base64不属于加密范畴,能够被逆向解码,等同于明文,所以Basic传输认证信息是不安全的

3、缺陷

1.用户名和密码明文(Base64)传输,须要配合HTTPS来保证信息传输的安全。
2.即便密码被强加密,第三方仍可经过加密后的用户名和密码进行重放攻击。
3.没有提供任何针对代理和中间节点的防御措施。
4.假冒服务器很容易骗过认证,诱导用户输入用户名和密码。
接下来,我会带你们一块儿去了解更为安全的摘要认证——Digest。编码

相关文章
相关标签/搜索