jsp xss解決方法

1045 ワード

標準フィルタで特殊記号をフィルタリングします。{}はel式で、デフォルトでは特殊符号をフィルタリングしません。
私達はel表現のデフォルト実装を修正できます。標準出力フィルタの特殊文字を許可します。等価は〈c:out value='/〉です。
参考にしましたhttp://pukkaone.github.com/2011/01/03/jsp-cross-site-scripting-elresolver.html
修正方法は以下の通りです。
1、から https://github.com/pukkaone/webappenhance/blob/master/src/main/java/com/github/pukkaone/jsp/EscapeXmlELResolver.java  Escape種類をダウンロードしてプロジェクトの中に入れます。
2、jsp-app-2.11.jarをダウンロードしてプロジェクトに参加して、さもなくば編集してjavax.el.Elessolverを申し込むことができません。
3、web.xmlを修正して加入する
<listener> <listener-class>com.yszoe.support.xss.EscapeXmlELResolverListener</listener-class> </listener>
注意してください。枠の中で元々のスプリングは自動的に結合パラメータの前で文字をフィルタリングします。削除します。ページ出力時にのみescapeが必要です。この時、{}は直接にescapeです。
この方法は最後に使用されていません。理由は$pager.postToolBarなどの出力が必要です。しかし、濾過されました。変更も多くなります。いっそのこと、開発者は自分のページでで出力し、ibm scanで安全性をスキャンして、性に対してページを修正すればいいです。