サーブレットとストラット ベースのアプリケーションがあります。その巨大なアプリケーションは、クエリが jsp で記述されており、XSS (リクエスト値がそのまま jsp に出力されます) になりがちです。200 jsp の巨大なアプリケーションです。
XSS 攻撃を修正して、コードの変更を最小限に抑え、QA 開発サイクルを短縮し、QA により多くの時間を割けるようにしたいと考えています。
ありがとう
実際に機能する唯一の方法は、UI レイヤーを作成することです。つまり、すべての HTML や JavaScript などを抽象化する Vaadin や Google Web Toolkit などのフレームワークを使用して、開発者が UI のルック アンド フィールを操作したり、新しいページを作成したり、ページを変更したりしないようにします。変更のセキュリティへの影響を考慮する必要はありません。
ほとんどの開発者は変更のセキュリティへの影響を知らないため、これは特に重要です。そのため、変更を抽象化することで、知識や経験の不足を防ぐことができます。また、開発者が犯す単純なエラーからも保護します。結局のところ、コードには常にバグがあることがわかっています。
また、他の方法でも非常に有益です。UI コードをあちこちに分散させるのではなく、UI フレームワークを使用すると、メンテナンスが容易になります。これにより、UI のルック アンド フィールが一貫したものになります。どこでもスポット修正するのではなく、UI 全体でルック アンド フィールを変更します。元の実装が完璧ではなかったために存在するバグ (または脆弱性) は、どこでもスポット修正するのではなく、1 か所で修正できます。
暫定的に、アプリケーションに UI レイヤーを作成するまでの間、OWASP の ESAPI を確認する必要があります。ボルトオンの XSS 保護を提供します。UI の一部の機能が壊れたり、UI の一部の機能が保護されなくなったりする可能性は非常に高いですが、適切な機能を果たします。これは、アプリケーションと完全に統合されていないためです。ボルトオンであるため、完璧である可能性は低いです。