《http权威指南》阅读笔记(九)
服务器要求客户端进行认证,可以通过401响应码,以及头部加上www-authenticate:Basic realm=”xxxx”
需要对client进行验证,有两种方式
基本认证和摘要认证,基本认证通过base64对user:password进行加密,然后发送给服务器,通过头部 Authentication: Basic 密文 发送给服务器,由服务器进行验证。这个是可逆的,可以通过密文知道用户的用户名和密码
摘要认证:采取生成消息摘要的方式对用户进行认证。一般采取md5,对user:password:请求头部:实体报文 进行摘要,不可逆,不能通过密文算出原文,安全性较高,但是一般可以通过截获请求 ,重新生成请求来进行恶意攻击,比如我截获了user:password生成的摘要,我用这个发送给服务器,还是可以通过认证的。所以有时候客户端和服务器还会约定一个随机数,客户端在请求服务器的时候,如果验证通过,服务器会发送下一次请求验证给出一个随机数,客户端使用把随机数也一起加入到请求报文进行消息摘要。这样就避免了截获报文。
以上两种方式都会存在监听情况
客户端和服务器端的请求会被监听
无法确认服务器是否是正确的通信服务器,可能导致请求截获而转发到欺骗的服务器
服务器没有办法确认客户端是否是正确的客户端,客户端的信息会被代理更改
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240826070647288-243310440.jpg)