3

なぜ私は得るのですか:

java.lang.NullPointerException org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:53)

Tomcat 5.5 で0wasp.CsrfGuard.Testサンプル アプリを実行しようとすると?

サンプル アプリをダウンロード時とまったく同じように使用していますが、listenerエラーを回避するために次の変更を加えています。

  • CsrfGuard 3.0.0 パッケージをダウンロードしてコピーしOwasp.CsrfGuard.jarWEB-INF/libリスナーが見つからない問題を回避しました。

  • 元の に存在しない Owasp.CsrfGuard.jar2 つのリスナーではなく、に付属のリスナーを使用するように web.xml ファイルを変更しました。web.xml

アプリを起動するとエラーは発生しませんが、ブラウザで/Owasp.CsrfGuard.Test/index.htmlページにアクセスすると上記のエラーが発生します。

試すアイデアはありますか?

アップデート...

数時間後、エラーなしで動作するようになりました。理由はわかりませんが、(少なくとも Tomcat では) webapp を停止して再起動した後でも、フィルター エラーが続くようです。その webapp のディレクトリの名前を変更し、Tomcat がそれを自動アンデプロイするまで 10 秒待ち、名前を元のディレクトリ名に戻し、Tomcat がそれを新しい webapp として認識するまで 10 秒待つ必要がありました。また、AJAX を使用していないため、web.xml ファイルから「x-requested-with」init-param を削除しました。それが本当に必要かどうかはわかりませんが、機能するので省略します。

現在、「protect.html」ファイルは確かに保護されていますが、保護が厳しすぎます。私はまったくそれに到達することはできません。protect.html ページに直接アクセスしようとすると、それは許可されませんが、許可されません。ただし、すべてのページが適切なトークンを取得して、適切な Web ページ フローを通過できるようにする必要があります。

問題は、protect.html ページにアクセスするにはどうすればよいかということです。

ありがとう。

4

1 に答える 1

1

とった!他の誰かが問題を抱えている場合に備えて、JavaScript DOM 操作を機能させるために私が見つけたものを次に示します。

.properties ファイル内のすべての参照は、Web コンテナー (私の場合は Tomcat) への参照で絶対でなければなりません。.js ファイルと .jar ファイルを特定の webapp に配置し、その webapp の web.xml ファイルを CSRFGuard の適切な設定 (ちなみに相対参照を使用) で変更した場合でも、.properties ファイル内のエントリには、ウェブアプリ名。たとえば、次のようにする必要があります。

org.owasp.csrfguard.unprotected.Index=/someapp/index.html

だけではなく

org.owasp.csrfguard.unprotected.Index=index.html

これは直観的ではありません。Tomcat コンテナー全体 (つまり、マスター web.xml ファイル) を扱っている場合を除き、通常は webapp の名前を省略できるためです。

ここで、JSP タグ インジェクションのもう 1 つの CSRFGuard メソッドを調べます。これは、ユーザーがブラウザで JavaScript をオフにしている場合、JavaScript メカニズムが機能しないためです。

于 2013-02-20T02:37:41.673 に答える