10

jsp ページ内に、次のように入力された入力値属性があります。

value="${param.name}"

誰かが何かを入れることができた場合、XSS 攻撃に対して脆弱です。

"><script>doEvil();</script>

param.name の値を適切にエスケープして脆弱性を修正するにはどうすればよいですか?

4

1 に答える 1

6

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 入力要素を表すことです。これにより、すべての場所で同じことを繰り返す必要がなくなり、誤って見落とす心配がなくなります。 .

以下も参照してください。

于 2013-09-27T17:09:58.267 に答える