2012-01-02 6 views
10

私は、JSF 2.0でwebappを実行する際に、クロスサイトスクリプティングとリクエスト偽造からすでに保護されていることを定期的に聞いています。これは長くて強い自動生成された値の代わりに、かなり予測可能なシーケンス値を使用し、したがって、ロバストなCSRF防止させることにより改善されているJSF 2.0でJSF 2.0によるCSRFの防止方法

SO postから次の抜粋は、このことを確認します。

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

+0

https://www.packtpub.com/mapt/book/application_development/9781782176466/9/ch09lvl1sec84/jsf-security-notes –

答えて

11

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

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

結局のところ、私はCSRFが何であるか全く理解していないという印象を持っています。 CSRFが何であるかを理解すれば、答えはむしろ自明です。その場合は、次の質問を確認してください。Am I under risk of CSRF attacks in a POST form that doesn't require the user to be logged in?

5

JSF 2.0のCSRF保護は暗黙的で、POSTリクエストに対してのみ有効です。

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

+0

GETリクエストのためには?? JSF 2.0では何ができるのですか? – oikonomopo

関連する問題