1

私はクロスサイト認証に取り組んでいます(一部のドメインは共通の認証を取得しています)。そこで、認証データ(ログイン、パスワード)を他からメインドメインに送りたい。

どのように使用すればよい protect_from_forgeryですか?また、有効なドメインからデータを受信したかどうかを確認するにはどうすればよいですか?

今考えているのはprotect_from_forgery、セッションコントローラーをオフにして、受信データのドメイン名を確認することです。

しかし、1 つのドメインだけでなく、CSRF 保護を構成することはできますか?

4

2 に答える 2

2

保護はセッション[:_csrf_token] をチェックして機能するため、すべてのドメインでセッションが同じであれば、protect_from_forgery が機能します。

于 2010-05-06T11:04:40.277 に答える
1

あなたが意図しているのは、まさに CSRF 脆弱性の定義です。ユーザーにログインまたはログオフを強制することは、通常、攻撃者にとって役に立ちません。このハッキングを実行するには、攻撃者はユーザー名とパスワードを知っている必要があります。これは、別のユーザーの認証されたセッションでの「セッション ライディング」の目的を無効にします。CSRF エクスプロイトを作成する筋金入りのハッカーとして、これは深刻な問題ではないと言っておきます。

これにパッチを当てる簡単な方法は、リファラーをチェックして、ログイン要求がドメインのホワイトリストから発信されていることを確認することです。これにパッチを当てる別の方法は、reCapthca のような Capthca を使用することです。はい、あなたはその権利を読んでいます。これが機能する理由は、攻撃者が有効なログイン要求を「偽造」するために javascript またはフラッシュで capthca を解決できないためです。

于 2010-05-06T18:17:17.470 に答える