【发布时间】:2020-02-16 22:11:50
【问题描述】:
websockets 是否容易受到 CSRF 攻击,如果Websocket 进行像登录一样的身份验证,如何做到这一点?
【问题讨论】:
标签: javascript websocket
websockets 是否容易受到 CSRF 攻击,如果Websocket 进行像登录一样的身份验证,如何做到这一点?
【问题讨论】:
标签: javascript websocket
我认为是的。
如果攻击者以某种方式从客户端初始化了一个套接字连接并发送消息,那么是的,CSRF 攻击是可能的。
当然,这只有在您使用基于 COOKIE 的身份验证时才是正确的。
由于 CSRF 攻击使用 cookie,这些 cookie 由浏览器随请求自动发送,并且请求得到身份验证。
如果您使用 cookie 来验证请求和连接,那么是可能的 CSRF 攻击。
为避免这些攻击,最好使用基于令牌的身份验证,例如JWT。
No Cookie-based authentication == No need for CSRF protection.
这里有一些关于AUTHENTICATION的有用链接:
【讨论】:
我希望这还不算太晚,但是除了 HttpOnly 会话 cookie 之外,您还可以检查 Origin 标头。参考:https://security.stackexchange.com/questions/76816/preventing-csrf-attacks-against-websocket-communications
Answer 还受以下因素影响:https://channels.readthedocs.io/en/latest/topics/security.html
基于令牌的身份验证 imo 应保留给移动应用程序。
【讨论】: