我们如何防止websocket csrf攻击?
也就是说,基本上可以找到websocket url,然后从浏览器控制台定义到该url的新websocket连接,并最终与数据库通信。我在这里找到了一个很好的解释:https://medium.com/@osamaavvan/E-websocket-application-wide-xss-csrf-66e9e2ac8dfa
我正在将ws-library与node.js一起使用,并查看了它们的文档。他们提供了一个例子,但最重要的是,他们基本上说了“自己写”:https://github.com/websockets/ws#client-认证
我找到了这个答案,但正如我所评论的,“validatecookie”会产生一个错误,因为它没有定义:https://stackoverflow.com/a/52792563/11930305
我查看了ws文档中引用的一个示例,如下所示:
if (!request.session.userId) {
socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
socket.destroy();
return;
}
哪里:
const uuid = require('uuid');
const id = uuid.v4();
req.session.userId = id;
我没有尝试过这个方法,因为如果有一个不需要另一个库的解决方案会很好,但也许这是最好的方法。
防止websocket csrf攻击的最佳和最简单的方法是什么?
暂无答案!
目前还没有任何答案,快来回答吧!