在jsp页面中,我有一个输入值属性,以这种方式填充:
value="${param.name}"
Run Code Online (Sandbox Code Playgroud)
如果有人设法放置东西,它很容易受到XSS攻击
"><script>doEvil();</script>
Run Code Online (Sandbox Code Playgroud)
如何正确地逃避param.name的值来修复漏洞?
使用JSTL fn:escapeXml()功能.
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<input value="${fn:escapeXml(param.name)}" />
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用一个体面的MVC框架提供taglib来表示已经隐式转义XML/HTML的HTML输入元素,例如JSF和Spring MVC,这样你就不需要在所有地方重复同样的事情而担心会意外地忽略一个.
| 归档时间: |
|
| 查看次数: |
9045 次 |
| 最近记录: |