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 框架,提供标记库来表示已经隐式转义 XML/HTML 的 HTML 输入元素,例如 JSF 和 Spring MVC,这样您就不需要在所有地方重复相同的内容并担心意外忽略一个.

也可以看看:

于 2013-09-27T17:09:58.267 回答