【发布时间】:2017-03-20 17:47:53
【问题描述】:
我在 HP Fortify 中扫描了我的应用程序并遇到了问题 Cross-Site Scripting: Poor Validation。我正在使用 ESAPI 库。我在一个 Struts 应用程序上得到了这个发现。
<%@ taglib prefix="s" uri="/struts-tags" %>
<form method='post' name='<s:property value='tableBean.formName'/>' action='Notification.action'>
public String printApplications() throws IOException, ServletException {
request.setAttribute(TableDisplayBean.TABLE_BEAN, tableBean);
}
使用 ESAPI 编码tableBean.formName 的正确语法是什么?
【问题讨论】:
-
为什么在表单中设置动态
name? -
我没有对原始实现进行编码。这是继承的遗留代码。我的工作是在不改变整体实施的情况下修复 Fortify 的发现。
-
问题:“formName”是用户可控制的吗?如果不是,那么这个甚至我推荐的 esapi 版本都没有实际意义,这可以被标记为误报。
标签: jsp struts2 xss fortify esapi