12

私は、JSF 2.0 で Web アプリケーションを実行しているときに、クロスサイト (スクリプティングとリクエストの偽造) から既に保護されていると定期的に耳にすることを調査しています。SO 投稿からの次の抜粋は、これを確認します。

JSF 2.0 では、かなり予測可能なシーケンス値の代わりに、長く強力な自動生成値を使用することでこれが改善され、堅牢な CSRF 防止になります。

誰かがこれについてもう少し詳しく説明できますか? この自動生成された値はどのように CSRF を防ぎますか? ありがとう!

4

2 に答える 2

14

この自動生成された値はどのように CSRF を防ぎますか?

推測できないからです。そのため、攻撃者は、攻撃 Web サイトの形式の隠しフィールドにハードコードすることはできません (ターゲット サイトに XSS ホールがあり、XSS 手段で値を直接取得できる場合を除く)。値が JSF に対して有効でない場合、攻撃 Web サイトから送信されたフォームは単に処理されず、代わりにViewExpiredException. 攻撃者はセッション ID を取得して URL 属性を介して戻す必要があることに注意してください。そのjsessionidため、もともと「弱い」CSRF 保護では、セッション ID を取得するために XSS ホールが必要になります。

結局のところ、あなたは CSRF が何であるかをまったく理解していないという印象があります。CSRFとは何かを理解していれば、答えは自明です。その場合は、次の質問を確認してください:ユーザーのログインを必要としない POST フォームで、CSRF 攻撃の危険にさらされていますか?

于 2012-01-02T19:49:04.733 に答える
6

覚えておくべきことの 1 つは、JSF 2.0 の CSRF 保護は暗黙的であり、POST 要求に対してのみ有効であることです。

JSF 2.2 では、これがより明示的にサポートされる予定です。ここで簡単に説明しました:http://arjan-tijms.omnifaces.org/p/jsf-22.html

于 2012-01-02T21:58:38.780 に答える