jsp ページ内に、次のように入力された入力値属性があります。
value="${param.name}"
誰かが何かを入れることができた場合、XSS 攻撃に対して脆弱です。
"><script>doEvil();</script>
param.name の値を適切にエスケープして脆弱性を修正するにはどうすればよいですか?
JSTL fn:escapeXml()
関数を使用します。
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<input value="${fn:escapeXml(param.name)}" />
別の方法は、タグライブラリを提供する適切な MVC フレームワークを使用して、JSF や Spring MVC などの XML/HTML を既に暗黙的にエスケープしている HTML 入力要素を表すことです。これにより、すべての場所で同じことを繰り返す必要がなくなり、誤って見落とす心配がなくなります。 .