• magicnum
    2019-06-27
    websocket握手完成后,传送数据帧时代理服务器为什么会把发送的帧数据解读为普通的http请求呢?这块没太懂,不是已经升级成websocket协议了吗,websocket连接并没有断开啊?

    作者回复: 如果这个代理服务器不识别websocket协议呢?
    那么,它会把握手请求识别为普通的http1.1请求,并把当前连接识别为http1.1长连接。
    当恶意页面构造出websocket数据文本帧,而文本帧形似http1.1的GET请求时,这个代理服务器就把它当成第2个http1.1请求了。

    
     1
  • 进击的小猿
    2019-06-27
    老师,masking key只能防止浏览器上的页面伪造出恶意的http get请求吧?如果攻击者用代码实现一个ws客户端来发送http get 请求,再用自己的恶意服务器回复恶意结果,不就可以构造恶意请求让代理服务器缓存结果了吗?

    作者回复: masking key只能防止浏览器上的页面,因为这样的攻击成本最低,只需要把恶意页面快速推广,且制作得非常容易让普通用户点击,就可以快速攻击各类代理缓存。
    如果是自己制作的类浏览器客户端,没有办法让大量互联网用户点击,也超出了masking key的scope。

    
     1
  • magicnum
    2019-06-27
    而且这时浏览器强制执行的,如果我模仿浏览器不一样可以发起污染吗

    作者回复: 模仿浏览器的客户端是没办法大规模推广的,攻击成本比较高。所以masking key只防守正常大厂的浏览器。

    
    
我们在线,来聊聊吧