【发布时间】:2017-06-15 17:37:39
【问题描述】:
嗨,我的项目 Veracode 报告了一个 XSS 问题 CWE ID 80。在我的请求处理程序方法中:
@RequestMapping(value = "/Update.mvc")
public @ResponseBody String execute(@ModelAttribute UpdateForm updateForm, BindingResult result,
HttpServletRequest request, HttpServletResponse response) throws ActionException {
return executeAjax(updateForm, request, response, result);
}
那么executeAjax来自一个抽象类,有不同的实现? 在这些实现中,来自表单的用户输入被获取并被操作以构造返回的字符串。
所以我的问题是: 是不是 Veracode 的假设是在实现中可以有 XSS?还是一般的东西? - 如何防止这种情况?我总是使用转换输入数据并且在用户输入时不返回它? - 那么如何预防呢? - 我是否必须从 HttpServiceRequest 中转义所有标头/请求参数?
编辑: 我是否必须使用以下过滤器: SecurityWrapperRequest
【问题讨论】:
-
您需要转义所有请求参数。例如。通过添加过滤器
-
@StanislavL 你能给出更详细的解释吗?我需要添加 HttpRequest 过滤器来转义请求中的所有标头和所有参数?或者我可以在本地工作并仅为我的 executeAjax 类的所有实现包装请求?点赞javacodegeeks.com/2012/07/…
标签: spring spring-mvc veracode