防止WebSockets的CSRF

我目前正在考虑websockets中的CSRF漏洞。

我已经阻止了所有的跨域websocket请求,但是存在脚本(比如这个python坏小子)来绕过这些安全措施。

是否值得在用户的index.html中包含一个标记,该标记必须作为查询字符串包含在socket.io.connect()调用中? 通过这种方式,我们可以在服务器上检查令牌是否符合我们的预期,否则会阻止连接请求。

感谢所有的建议!


你为什么不为你的socket.io连接设置一个授权处理程序? 您可以根据握手过程中收集的信息拒绝/接受其中的连接。

有关详细信息,请参阅https://github.com/LearnBoost/socket.io/wiki/Authorizing。


我用django使用socket.io。 我处理授权的方式是首先要求用户使用包含CSRF令牌的常规HTTP表单进行登录。 成功登录后,将设置会话cookie并将用户重定向到socket.io应用程序。

在我的连接授权代码中,我检查cookie并验证用户是否已登录,如果检查失败,则返回“401未授权”。

如果你不想要求用户首先登录,或者你可以在授权期间将CSRF令牌作为URL参数传递给@ 3rdEden,那么也可以设置一个CSRF cookie并检查它。

链接地址: http://www.djcxy.com/p/63317.html

上一篇: Preventing CSRF for websockets

下一篇: Atomic Minimum on x86 using OpenMP