在浏览器端禁用WebSockets压缩和xor掩码

时间:2015-10-25 10:02:27

标签: javascript node.js websocket

我在NodeJS项目中使用“WS”库。可以禁用压缩吗?我正在尝试在服务器端执行此操作

ws = new WebSocketServer({port: 8889, perMessageDeflate: false})

但它不起作用

Accept-Encoding: gzip, deflate
Sec-WebSocket-Extensions: permessage-deflate

我不知道如何禁用xor mask。

2 个答案:

答案 0 :(得分:4)

您已在服务器中按消息deflate禁用,但是您看到客户端正在宣布其处理它的能力,这是正常的。我的意思是,您粘贴的HTTP标头来自客户端请求(因为服务器不发送Accept-*标头)。

要知道压缩是否最终被选为连接的扩展,请检查服务器响应中的Sec-WebSocket-Extensions标头。

无法禁用XOR屏蔽,从客户端到浏览器需要缓解一些可能的攻击和代理做有趣的事情:https://softwareengineering.stackexchange.com/questions/226343/is-masking-really-necessary-when-sending-from-websocket-client

答案 1 :(得分:0)

别忘了添加Compression:None标头-否则,浏览器需要带有permessage-deflate的Sec-WebSocket-Extensions。