很遺憾的是,跨站請求偽造攻擊不僅限於 HTTP 協定。WebSocket 劫持 (有時稱為 CSWSH) 是大多數即時應用程式中經常被忽略的漏洞。幸運的是,由於 Sails 將 HTTP 和 WebSocket 請求都視為一等公民,因此其內建的 CSRF 保護 和 可設定的 CORS 規則集 同樣適用於這兩種協定。
您可以透過在 config/security.js
中啟用內建保護,並確保所有相關的連入 socket 請求都隨附 _csrf
令牌,來為您的 Sails 應用程式做好防範 CSWSH 攻擊的準備。此外,如果您計劃允許 socket 從跨來源 (即來自不同的網域、子網域或埠) 連線到您的 Sails 應用程式,則需要相應地設定您的 CORS 設定。您也可以在 config/sockets.js
中定義 authorization
設定為自訂函數,該函數可以根據您的需求允許或拒絕初始 socket 連線。