2016-04-04 19 views
0

私はtomcat 5.5.36を使用しています。私はJSPでアプリケーションを構築しました。私は私のアプリケーションをスキャンするために "toolOwasp Zapセキュリティツール"を使いました。レポートでは、XSSに関する問題が見つかりました。私はユーザーにログインして投稿するためにフォームを使用しています。報告書の中で XSS攻撃を防ぐ方法tomcat 5.5

その格言(反射)クロスサイトスクリプティング

パラメータ - ユーザ名 アタック - </span><script>alert(1);</script><span> 証拠 - 私は、ユーザーを認証するために雪村IDを使用しています</span><script>alert(1);</script><span>

。私はXSS攻撃に関するいくつかのドキュメントを読みましたが、適切な解決策を見つけることができませんでした。これは特定のTomcatバージョンで動作します。 (注:CSRFトークンを使用するソリューションはありますか?)

+1

。それはあなたのアプリケーションの不正な実装によって引き起こされます(特殊文字をエスケープすることなく、ユーザーがHTMLページに直接入力したユーザー名を出力しているように見えます)。これはあなたのコードで修正する必要があります。CSRFトークンは問題とは関係ありません。 – yole

+0

少し曖昧ですが、セッションハイジャックを防ぐために、ログインの前後に別のsessionIdを持つテクニックを指している可能性があります。 – Gimby

+0

@yoleいいえユーザー名を直接出力していません。私はちょうどポストとしてアクションのURLとメソッドとのフォームを持っていると私は2つの入力フィールドがあるフォームで。ユーザー名とパスワード。問題のコードは、CSRFを持つ可能性を示すツールによって生成されます。 –

答えて

2

まずは賞賛があります!

あなたはアプリケーションのセキュリティを確保し、偉大な開発者になるための最大のステップを踏みました。真剣に言えば、それは業界ではそれほど遠くないため、開発者の未来について気分を良くしています。 は、クロスサイトスクリプティングに対してアプリケーションを保護する、または実際の脆弱性のいずれかの他の種類、何かをインストールしたり、実際にTomcatの中に何かを有効にすることで簡単に達成できるものではありません。

今すぐ楽しい部分のために:-)よくやりましたTomcatを使用しているという事実は、アプリケーションレベルの脆弱性と実際に関連しているべきではありません。さらに、クロスサイトリクエスト偽造は、独立した無関係の脆弱性です。申し訳ありません:-(

具体的な例を見てみましょう。基本的に問題は、ユーザーがログインフォームに入力した入力を取り込んで、ページを消毒することなくページに印刷することです。 </span><script>alert(1);</script><span>という名前でログインしようとしたという報告と、スクリプトとアラートがレスポンスに印刷されていることがわかりました。

あなた自身で試してみると、アラートが表示されますポップアップ

残念ながら、アプリケーションを保護するために単純な切り替えはありません。一般的な脆弱性の種類それぞれに対抗するための標準的なアプローチとツールを学びます。

OWASP Top 10 wikiは、さまざまな脆弱性に関する情報を提供しています。どのような働きをしているのか、また守るために何をすべきかを知ることができます。

https://www.owasp.org/index.php/Top_10_2013-Top_10

あなたも、コードサンプルを見つけて助けるために例を働いたことができます。

私はここで屠殺に子羊を導いているような気がする - 私はすべてのことを読むことはかなり気になるが、あなたの時間を取るとパニックにならないことを知っている。それぞれの脆弱性の種類を理解すれば、ほとんどの脆弱性を簡単に防ぐことができます。 XSSは、あなたが使用しているのTomcatのバージョンとは何の関係もありませんほとんどの場合、このことができます

希望、 チャーリー

+0

素晴らしい提案をありがとう。実際に私は同じツールを使ってアプリケーションを分析していますが、レポートにはこのような問題はほとんどありません。私はCSRFトークンについて尋ねました。私が[https://www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet](https://www.owasp.org/index.php/ CSRF_Prevention_Cheat_Sheet)シンクロナイザートークンパターン。 –

+0

問題ありません - 申し訳ありませんが、私はあなたに簡単な答えを与えるだけではありません:-)私は、誰かが自分のアプリケーションを安全にする方法に積極的に関心を持っていることを嬉しく思っています。これらの問題をしっかりと理解することができれば、あなたはすばらしい開発者になるでしょう - 実際、これらのタイプの脆弱性に関する質問は、潜在的な開発者の口実を判断するためにインタビューでよく使用されます。 – kabadisha

関連する問題