不幸的是,跨站请求伪造攻击并不局限于 HTTP 协议。WebSocket 劫持(有时称为 CSWSH)是大多数实时应用程序中常被忽视的漏洞。幸运的是,由于 Sails 将 HTTP 和 WebSocket 请求视为一等公民,其内置的 CSRF 保护 和 可配置的 CORS 规则集 适用于这两种协议。
您可以在 config/security.js
中启用内置保护,并确保将 _csrf
令牌发送给所有相关的传入套接字请求,以使您的 Sails 应用程序免受 CSWSH 攻击。此外,如果您打算允许套接字跨域(即来自不同的域、子域或端口)连接到您的 Sails 应用程序,则需要相应地配置您的 CORS 设置。您还可以在 config/sockets.js
中定义 authorization
设置,作为自定义函数,根据您的需求允许或拒绝初始套接字连接。