如何从jsp内部的HTML属性中转义值以避免XSS攻击?
在jsp页面中,我有一个输入值属性,它是这样填充的:如何从jsp内部的HTML属性中转义值以避免XSS攻击?,jsp,xss,Jsp,Xss,在jsp页面中,我有一个输入值属性,它是这样填充的: value="${param.name}" 如果有人试图放置某些东西,它很容易受到XSS攻击 "><script>doEvil();</script> doEvil(); 如何正确转义param.name的值以修复漏洞?使用fn:escapeXml()函数 <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/fu
value="${param.name}"
如果有人试图放置某些东西,它很容易受到XSS攻击
"><script>doEvil();</script>
doEvil();
如何正确转义param.name的值以修复漏洞?使用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,这样您就不必在所有地方重复相同的内容,也不用担心会意外忽略其中一个
另见:
onclick='myfunc()'
。注入42);警报(1);(42
将导致执行恶意负载警报(1)
。幸运的是,大多数服务器到javascript处理程序的嵌入都是作为javascript字符串的一部分进行的,例如在onclick='myfunc(“…”)
中。在这种情况下,应用javascript字符串编码器(如果前者不包括后者,则在顶部使用HTML编码器)就足够了。