最近攻撃され、攻撃者がリモート フォームの送信を繰り返し送信したコードをいくつか継承しました。
ユーザーごとに作成するセッション認証トークンを使用して防止を実装しました(セッション ID ではありません)。この特定の攻撃がCSRFではないことはわかっていますが、これらの投稿からソリューションを適応させました(日付はありますが)。
- https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29
- http://tyleregeto.com/a-guide-to-nonce
- http://shiflett.org/articles/cross-site-request-forgeries
ただし、ここにはまだ脆弱性があると感じています。100%安全なものはないことは理解していますが、いくつか質問があります。
- 潜在的な攻撃者は、単純に有効なセッションを開始し、各リクエストに (Cookie を介して) セッション ID を含めることはできませんか?
- nonceはsession tokenよりも優れているようです。nonceを生成して追跡する最良の方法は何ですか?
- これらのソリューションが単一のウィンドウにすぎないといういくつかの点に出くわしました。誰かがこの点について詳しく説明できますか?
- これらのソリューションは常にセッションを必要としますか? または、これらのトークンはセッションなしで作成できますか? UPDATE、この特定のページは単なる 1 つのページ フォーム (ログインなし) です。そのため、トークンを生成するためだけにセッションを開始するのは過剰に思えます。
- セッションを使用しないこの特定の攻撃から保護するために実装できる、より単純なソリューション (CAPTCHA ではない) はありますか。
最終的には、より堅牢なソリューションを実装できるように、理解を深めたいと考えています。