まずは賞賛があります!
あなたはアプリケーションのセキュリティを確保し、偉大な開発者になるための最大のステップを踏みました。真剣に言えば、それは業界ではそれほど遠くないため、開発者の未来について気分を良くしています。 は、クロスサイトスクリプティングに対してアプリケーションを保護する、または実際の脆弱性のいずれかの他の種類、何かをインストールしたり、実際に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のバージョンとは何の関係もありませんほとんどの場合、このことができます
希望、 チャーリー
。それはあなたのアプリケーションの不正な実装によって引き起こされます(特殊文字をエスケープすることなく、ユーザーがHTMLページに直接入力したユーザー名を出力しているように見えます)。これはあなたのコードで修正する必要があります。CSRFトークンは問題とは関係ありません。 – yole
少し曖昧ですが、セッションハイジャックを防ぐために、ログインの前後に別のsessionIdを持つテクニックを指している可能性があります。 – Gimby
@yoleいいえユーザー名を直接出力していません。私はちょうどポストとしてアクションのURLとメソッドとのフォームを持っていると私は2つの入力フィールドがあるフォームで。ユーザー名とパスワード。問題のコードは、CSRFを持つ可能性を示すツールによって生成されます。 –