zoukankan      html  css  js  c++  java
  • HTTP缺点

     

    通信使用明文可能会被窃听

      HTTP本身不具备加密的功能,所以也无法对请求和响应的内容(整体)进行加密(只能明文),即使对请求和响应主体进行加密,也有可能被破解加密算法,同时加密处理后的报文信息本身还是会被看到。

    •  从客户端-互联网-服务器,中间均有可能被代理服务器或者监听程序所窃听。
    •      窃听同网络断的通信可通过收集网络上的数据包(帧),之后交给抓包或嗅探工具(比较知名的有fiddler、wireshark、burp等等)。HTTP 本身没有加密方式,但是可通过和SSL(安全套接层)、TLS(安全传输层协议),加密报文主体。用SSL加密的HTTP就称为HTTPS。当然还有一种加密方式直接针对内容,即先将内容加密再进行传输(即加密是由客户端来承担),这样做的话同样对服务器存在要求,即服务器同样需具备加密解密机制。

    不验证通信方的身份就可能遭遇伪装

    •   HTTP协议中的请求和响应不会对通信方进行确认。存在如下问题:无法确认请求发送到目标的web服务器是否是按真实意图返回响应的那台服务器(有可能是已伪装的web服务器);无法确定响应返回到的客户端是否是按真实意图接收响应的那个客户端(有可能是已伪装的客户端);无法确定正在通信的对方是否具备访问权限(因为某些web服务器上保存着重要的信息,只想发给特定用户通信的权限);无法判定请求是来自什么地方,来自什么用户;即使是无意义的请求也会照单全收,无法阻止海量请求下的Dos攻击(拒绝服务攻击)
    • 虽然HTTP协议无法确定通信方,但SSL可以,SSL可提供证书,用于验证通信方是否是可信赖的通信方。流程大致为:客户端在开始通信之前先确认服务器的证书(证书是可信任的第三方机构颁发),证书确认请求服务器是目标服务器,之后进行正常传输。

    无法证明报文完整性,可能已遭篡改

      信息完整性指信息的准确度,无法证明完整性,即无法保证信息是否准确。

    • HTTP协议传输的内容在从服务器到达客户端时,客户端无法判别此内容与服务器上该资源是否完全一致。针对这种攻击被称为 中间人攻击(Man-in-the-Middle attack)
    • HTTP无法判别报文完整性究其原因,是因为确定报文完整性的方法不便捷、不可靠。其中常用的有MD5和SHA-1 这种散列值校验的方法及用来确认文件的数字签名方法。这两种方法都需要用户本人接收返回包之后手动检查验证。

    综上,为了防止以上问题,需使用HTTPS。SSL提供认证和加密处理及摘要功能。

  • 相关阅读:
    CAP.dll of dotnetcore
    GRPC 高性能 RPC 框架, 服务间通讯
    REST Client
    ERP Export
    ERP Update DataSource
    knockout js
    面试题目总结
    JavaScript Objiects and Prototypes
    PLS-00172: string literal too long
    字符串连接性能
  • 原文地址:https://www.cnblogs.com/willam3808/p/12553139.html
Copyright © 2011-2022 走看看