WebSocketサーバーのDoS攻撃を阻止するためのベストプラクティスは何ですか?
参照できる包括的なサイトまたはドキュメントはありますか?
最近では、ネットワーク内にある種の高額な物理ファイアウォールがなければ、トラフィックベースのDoSを阻止することはほぼ不可能です。ただし、DoSの他の形式について話している場合は、役立ついくつかのことができます。
非同期/非ブロッキングソケットを使用します。悪意のあるユーザーがソケットへの接続をいくつでも開いて、使用可能なスレッドをすべて消費する可能性があります。 ( Slowlorisの脆弱性 )
ユーザーが1秒あたりのリクエストをいくつ送信できるかを制御して、ソケットがフラッディングしないようにします。
ユーザーがサーバーにリソースを集中的に使用して実行できないようにする
tl; dr:
「はい、WebSocketは単一のサーバーに無制限の数の接続を開く最初の方法です。そのため、DOS攻撃を防ぐために追加の保護が必要になる可能性があります。しかし、実際にこれを正しく実装する方法はありません...」( https://bugs.webkit.org/show_bug.cgi?id=32246#c4 )
私もそのトピックに興味がありますが、すべてのソースを読む時間がないので、(うまくいけば)役に立つリンクのコレクションとしてこれを開始します。各リンクへのコメントを歓迎
アップデート1(特にBlackhat-Presentation)
Hacking with WebSockets/BlackHat 2012 、特にセクション:サービス拒否-サーバー/ WebSocketを安全にデプロイ/ WebSocketの安全なプロトコル