论坛首页 Java企业应用论坛

[bug处理]struts1注入html代码的修复

浏览 2067 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-01  

    今天跟同事解决这样一个问题:

    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>
 至此,这里就解决了原值的显示
哎,老项目中的bug实在是太多啊......

 

 

 

   发表时间:2011-11-01  
感觉语句显得有点长.
直接用EL表达式也可以的吧.${value}
0 请登录后投票
   发表时间:2011-11-01  
cataclyzh 写道
感觉语句显得有点长.
直接用EL表达式也可以的吧.${value}



对,改成EL了,这是在家写的,记得不是很清楚的......
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics