• 浏览器与服务端之间的通信


     1.HTTP

      超文本传送协议(HyperText Transfer Protocol),是一种无状态协议,应用于计算机网络通信的一种规则。一般我们通过浏览器从相应服务器获取相关的网页文件,此过程只进行一次连接,即"发送请求"—"接收响应",不建立持久连接。

      过程:建立连接—>浏览器发送http请求—>服务器响应,并发送相关文件—>服务器连接关闭,浏览器解析相关文件,渲染页面

      使用端口:80

      信息安全性:不安全

      HTTP响应码:1xx—提示信息  

             2xx—请求成功   

                200:成功请求的标准状态码

             3xx—重定向

                301:永久重定向—资源被永久转移到其他URL,会自动连接

                302:重定向—用户所请求的资源被发现位于其他URL中,但用户继续使用当前URL

                304:文件未变化—已经执行请求,但资源未变化

             4xx—浏览器错误

                400:错误请求—服务器无法理解的语句错误

                404:无法找到所请求界面

             5xx—服务器错误

                500:内部服务器错误—服务器遇到意外状况导致请求失败

                503:服务器暂时不可用或过载导致请求失败

    2.HTTPS

      超文本传输安全协议(Hypertext Transfer Protocol Secure),超文本传输协议(http)与SSL、TLS的组合,以提供加密通讯及网络服务器身份鉴定。

      服务器与浏览器通过一次握手进行信息传输:

      浏览器将自身支持的加密法发送至服务端—>服务端从中选择一组加密算法,hash算法及包含身份信息(网站地址,加密公匙,证书颁发机构等)的证书返回浏览器—>浏览器验证证书合法性(已知CA列表),若不合法会有提示信息,由用户决定是否接受—>接受后生成随机密码并用公匙加密,用约定的hash算法计算握手信息并加密—>发送至服务器,服务器解析并验证信息,同时发送加密的握手信息至浏览器—>浏览器解析验证,若hash一致则握手结束,可进行加密信息传递。

      简化:证书验证—>密匙交换(密匙约定)—>验证密匙—>握手(识别通信双方,确定信息交换算法)

      使用端口:43

      信息安全性:相对安全

    3.HeartBleed(OpenSSL漏洞)

      SSL(Secure Socket Layer):web的安全传输协议,采用公开密钥技术,保证两个应用间通信的保密性和可靠性,TCP安全层。

      OpenSSL:开源的的SSL包,编程语言为C语言,实现基本的传输层数据加密功能。

      由于OpenSSL的小错误而导致的漏洞:

        先看看漏洞出现点,SSL heartbeat:浏览器与服务器之间建立握手过程,有2个来回(浏览器->服务器->浏览器【判断是否接受】->服务器->浏览器),这个过程难免会有延时,为防止连接在中间断掉而占用服务器资源,于是在此过程,客户端会隔一段时间就发一个 “心跳”包,以告诉服务器,浏览器还未断线,而服务器会返回相应心跳,以此维持连接状态,这就是心跳监测。

        漏洞出现的根因:缺乏心跳包边界检查,即未对心跳包长度与实际载荷长度的匹配性进行校验,因此当在心跳包中人为的加入类似超量信息索取的请求时,服务器无法提供足量的心跳包反馈数据,就会将心跳包后的内存区块一同发送给对端,从而导致信息泄漏,而该心跳包成为畸形的心跳包。每次泄漏的内容都是随机的,但难免会包含敏感信息,而对用户造成损失~

      

    4.该怎么做

      对于用户:暂停使用OpenSSL加密的网站,等受影响的网站升级软件,修复漏洞后修改密码。

      对于码农:规范代码编写,注意代码整洁,保持思维清晰,合理命名以剔除BUG啦~

      

  • 相关阅读:
    BZOJ3435: [Wc2014]紫荆花之恋(替罪羊树,Treap)
    BZOJ2668: [cqoi2012]交换棋子(费用流)
    codeforces111D. Petya and Coloring(组合数学,计数问题)
    codeforces1114D. Flood Fill(区间Dp)
    BZOJ2137: submultiple(生成函数,二项式定理)
    BZOJ3645: Maze(FFT多项式快速幂)
    codeforces 140E.New Year Garland
    BZOJ1194: [HNOI2006]潘多拉的盒子(tarjan)
    BZOJ2337: [HNOI2011]XOR和路径(高斯消元,期望)
    BZOJ3569: DZY Loves Chinese II(线性基构造)
  • 原文地址:https://www.cnblogs.com/pada/p/3664631.html
Copyright © 2020-2023  润新知