dorado7中碰到的xss问题解决
关于dorado7中xss问题解决.
之前的写法是拿到参数,然后拼成html放到htmlcontainer中.
其实逻辑很简单,接收错误信息,然后页面上显示出来.
这个时候还是发现淘宝检测出xss漏洞.传递的参数?error_code=&error_msg=31'13""42>24<99
var error_code="${request.getParameter('error_code')}";
var error_msg="${request.getParameter('error_msg')}";
var endHtml = "<h3>对不起!充值失败!</h3>";
endHtml = endHtml +"请联系管理员."+"<br/>错误代码:"+error_code+"<br/>错误信息:"+error_msg;
alert("endHtml:"+endHtml);
$("#notice").html(endHtml);
想来想去,dorado直接获取参数都有问题.
或者经过ajaxaction,调用StringEscapeUtils.escapeHtml转换数据
都不理想,
想来想去用最古老的方法.使用jsp来处理.
<div id="notice" class="notice n-error">
<h3>对不起!充值失败!</h3>请联系管理员.<br/>错误代码:<%=StringEscapeUtils.escapeHtml(request.getParameter("error_code"))%><br/>错误信息:<%=request.getParameter("error_msg") %>
</div>
这样做测试的时候 偶然发现dorado貌似做了些处理.
如果error_msg直接传入<script>alert(1);</script> doraodo报错.
修改成
<div id="notice" class="notice n-error">
<h3>对不起!充值失败!</h3>请联系管理员.<br/>错误代码:<%=StringEscapeUtils.escapeHtml(request.getParameter("error_code"))%><br/>错误信息:<%=StringEscapeUtils.escapeHtml(request.getParameter("error_msg")) %>
</div>
就一切ok了.