HTTP的缺点
1、使用明文通信
HTTP协议不具备给通讯内容加密的功能,所有使用HTTP协议通信的请求和响应的内容无法进行加密,都是使用明文发送。由于HTTP属于TCP/IP协议族的协议,按照TCP/IP协议族的通讯机制,HTTP在整个通讯线路上都存在被窃听的可能。例如:wireshark等抓包工具、sniffer等嗅探工具都可以在通讯网络上收集数据包并进行解析。
2、不验证通讯双方身份
HTTP协议不会对通信中的请求方和响应方进行验证。服务器只要接收到请求就会返回一个响应。因此存在会一些安全隐患:
1、无法确定请求发送到的web服务器是按真实意图返回响应的web服务器,存在伪装服务器的可能。
2、无法确定响应是不是返回到按照真实意图接受的客户端的情况,存在伪装客户端的可能。
3、无法确定通信方是否有通讯的权限。对于一些保存有重要信息的服务器,只能将信息发送给部分有通讯权限的用户。
4、对于无意义的请求,服务端也会响应。无法阻止DOS拒绝服务攻击,通过海量请求占用服务资源,无法正常提供服务。
5、无法判断请求的来源和发起者。
3、无法验证报文的完整性
HTTP协议无法确认通信报文的完整、准确。在请求或响应送出之后直到接收方接收之前这段时间,如果请求或响应被篡改,也是无法知道的。即:发出的请求和响应和接收到的请求和响应无法确保相同。例如:中间人攻击
HTTP的加密处理
1、内容加密
由于http协议本身不具有加密功能,我们可以通过对http协议传输的内容加密。客户端需要对 HTTP 报文进行加密处理后再发送请求,服务端需要对http报文先解密再处理请求。这就需要客户端和服务端同时具有加密和解密机制。因为http协议的报文是明文发送的,所以如果攻击者在通讯中途篡改篡改加密后的报文,用户依然是无法知道的
2、通讯加密
http通过与安全套接层ssl或者安全层传输协议tcl组合使用,加密通讯内容。使用ssl建立安全通讯线路,在这条线路上进行http通讯,即https。