作者回复: 如果这个代理服务器不识别websocket协议呢?
那么,它会把握手请求识别为普通的http1.1请求,并把当前连接识别为http1.1长连接。
当恶意页面构造出websocket数据文本帧,而文本帧形似http1.1的GET请求时,这个代理服务器就把它当成第2个http1.1请求了。
作者回复: masking key只能防止浏览器上的页面,因为这样的攻击成本最低,只需要把恶意页面快速推广,且制作得非常容易让普通用户点击,就可以快速攻击各类代理缓存。
如果是自己制作的类浏览器客户端,没有办法让大量互联网用户点击,也超出了masking key的scope。
作者回复: 模仿浏览器的客户端是没办法大规模推广的,攻击成本比较高。所以masking key只防守正常大厂的浏览器。