XSS跨站点脚本-Jsp <Input>标记

Dee*_*ena 3 xss cross-site

我的JSP中的以下代码段在input标签上造成了跨站点脚本漏洞。

<form name="acctFrm" method="post" action="<%=contextPath%>/form/acctSummary?rpt_nm=FIMM_ACCT_SUMM_RPT">
<table>
 <tr>
  <td>Account Id:</td>
  <td>
   <input class="tbl1" type="text" id="acctId" name="acctId" size="20" maxlength="10" value="<%=rptBean.getAcctId()%>"/>
   <a href="javascript:doAcctSubmit()"><img class="tbl1" src="<%=contextPath%>/img/Submit.gif" border="0" /></a>
  </td>
 </tr>
</table>
</form>
Run Code Online (Sandbox Code Playgroud)

在渗透测试期间,他们可以通过在标签的value属性中注入警报脚本来向用户发出一些随机消息,如下所示

<input class="tbl1" type="text" id="acctId" name="acctId" size="20" maxlength="10" value="1"><script>alert(12345)</script>" />
Run Code Online (Sandbox Code Playgroud)

这里的问题是什么,将会解决什么。

我正在阅读有关XSS的一些在线参考资料,但我仍然不确定100%是什么问题。

任何帮助将不胜感激。

谢谢,黛娜

Dee*_*ena 5

我使用了以下解决方案,

value属性中的scriplet就是问题,我用jstl标记替换了它,我读到某个地方jstl标记具有内置转义机制来避免xss问题。

<input class="tbl1" type="text" id="acctId" name="acctId" size="20" maxlength="10" value="<c:out value=${rptBean.acctId}"/>"/>
Run Code Online (Sandbox Code Playgroud)

这对我的问题很有用。

谢谢