十二,基本认证机制
1,认证就是需要证明你是谁;HTTP提供了两个官方的认证协议,在这线讨论基本认证(一个质询/响应框架);
2,基本认证的步骤:
步骤 | 首部 | 描述 | 方法/状态 |
请求 | 第一条请求 | GET | |
质询 | WWW-Authenticate | 服务器用401状态码拒绝了请求,说明需要用户提供用户名和密码; 服务器上的不同区域与不同的密码来保护文档被无权限的用户访问 | 401 unauthorized |
授权 | Authorization | 客户端填写用户名和密码,并附加到Authorization首部,重新发送请求 | GET |
成功 | Authorization-Info | 如果授权证书是正确的,服务器将返回请求的文档 | 200 OK
|
注意:浏览器会将用户名和密码编码成“经过扰码的”Base-64表现形式,然后再发送;
Base-64编码:它会将一个8位字节序列划分为6为的块,用每6位的块在一个特殊的由64个字符组成的字母表中选择一个字符,这个字母表中包含了大部分字母和数字;
3,基本认证存在的安全缺陷:
(1)基本认证会在网络上传送用户名和密码,用户名和密码只是用base64简单编码的,实际上,密码是以明文传输的,任何都可以读取并将其获取;base64编码只能防服务器管理员等偷看,无法再传输的过程中保护密码;所以,经过base64编码的密码实际上就是“明文”传送的;
(2)即使使用了更复杂的方式加密,第三方用户也可以获取并试图破解密码;
(3)即使你的内容可能是不怎么重要的,但如果你的所有服务都使用了相同的密码,那么,第三方就可以通过这个密码访问你的重要信息,比如银行在线网站;
(4)假冒服务器很容易骗过基本认证;
所以,将基本认证与加密数据传输(如SSL)一起配合使用,会使基本认证变得更加安全,这是一种常用的技巧;