11

デフォルトでは、Rails のフォーム ポスト CSRF 保護は、ユーザーのセッションが変更された場合にのみ変更されるユーザーの認証トークンを作成します。お客様の 1 人がサイトのセキュリティ監査を行い、問題としてフラグを立てました。

監査人の声明は、XSS の脆弱性もあれば、攻撃者が別のユーザーの認証トークンを取得し、ユーザーのセッションが期限切れになるまでそれを CSRF 攻撃に利用できるというものでした。

しかし、そのような XSS 脆弱性があれば、攻撃者は別のユーザーのセッション Cookie を簡単に取得して、そのユーザーとして直接ログインできるように思えます。または、攻撃されているユーザーとして、スクリプトから REST Api を呼び出すだけです。このような状況では、CSRF 攻撃を実行できることはそれほど悪いことではないように思われます...問題は XSS の脆弱性です。

私は何かを逃しましたか?Rails のデフォルトの CSRF 保護に実際の問題はありますか?

4

1 に答える 1

11

あなたは完全に正しいです。トークンベースのCSRF保護が最も一般的であり、アプリケーションでXSSをテストする限り、問題はありません。

XSSに関係なくCSRFを停止できる場合があります。たとえば、パスワード変更フォーラムでは、現在のパスワードを知っている必要があります。ハッカーは、現在のパスワードを知らない限り、この要求を偽造することはできません。

別の方法は、その要求を解決するためにキャプチャを要求することです。reCapthcaの使用をお勧めします。

于 2010-03-31T22:42:55.047 に答える