残念ながら、クロスサイトリクエストフォージェリ攻撃はHTTPプロトコルに限定されません。WebSocketハイジャック(時にはCSWSHとして知られています)は、ほとんどのリアルタイムアプリケーションで見過ごされがちな脆弱性です。幸いなことに、SailsはHTTPリクエストとWebSocketリクエストの両方を同等に扱うため、組み込みのCSRF保護と設定可能なCORSルールセットは両方のプロトコルに適用されます。
config/security.js
で組み込みの保護を有効にし、関連するすべての着信ソケットリクエストに_csrf
トークンが送信されるようにすることで、SailsアプリケーションをCSWSH攻撃から保護することができます。さらに、ソケットがクロスオリジン(つまり、異なるドメイン、サブドメイン、またはポート)からSailsアプリケーションに接続することを許可する予定がある場合は、それに応じてCORS設定を構成する必要があります。また、config/sockets.js
でauthorization
設定をカスタム関数として定義することで、ニーズに基づいて最初のソケット接続を許可または拒否することもできます。