日期:2014-05-17 浏览次数:20876 次
? ? 今天跟同事解决这样一个问题:
? ? jsp页面中处理request.getAttribute("value")的注入!
?
? ? jsp页面如下:
?
<html>
<head>
<title>xxx</title>
</head>
<body>
<div class="blue">
<p>
<%=request.getAttribute("value")%>
</p>
</div>
</body>
</html>
?
?
有用户恶意的将value值设置为:<img src="#" onerror="alert hello" />
?
用户在提交表单之后,会突然弹出js框,造成错误!
?
这时需要解决的问题就是将用户显示的值原值显示出来!
?
这是可以采取的方式有如下:
1. struts2中的property来设置
?
?
<s:property value="test" escape="false"/>
escape:false为不显示
? ? ? ? ? ? ? ? ?true显示
由于是使用的struts1,所以这里不能使用
2. html <code>标签
? ? 这里经过测试,无法展现?http://www.w3school.com.cn/tags/tag_code.asp
3. el表达式
? ? 最后使用的是c:out来做处理实现
?
导入el表达式库
?
?
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/functions"%>
<html>
<head>
<title>xxx</title>
</head>
<body>
<div class="blue">
<p>
<c:out value=" <%=request.getAttribute("value")%>" />
</p>
</div>
</body>
</html>
?至此,这里就解决了原值的显示
?
?
?