如何在JSP/Servlet Web应用程序中防止XSS攻击?
正如 JavaDocs 中所述,它将在未来版本中删除。是否有任何替代库可以通过注释类似地工作?
我如何确保两次逃脱?
我听说它是一种很好的做法,可以在从表单中接收值时转义值,并在输出时转义.这样你就有两次抓住机会的机会.
当您绑定到命令对象时,如何处理您希望表单中的用户输入为htmlEscape'd的情况?
我希望这能自动清理输入数据,以避免在命令对象中的所有字段中运行.
谢谢.
我正在尝试保护我的 Spring MVC Web 应用程序免受跨站点脚本 (XSS) 攻击。
起初我以为我可以简单地在 web.xml 中设置 defaultHtmlEscape 并完成。但我发现并没有什么效果。如此处所述 - Spring 或 App-Server escape html 无法正常工作 JAVA MVC,defaultHtmlEscape 对输入没有影响。它仅清理 c:out 标记内的输出。
所以我想我应该编写一个过滤器来拦截请求,检查参数,并根据需要清理它们。但是在研究如何编写过滤器时,我遇到了这个 - XSS Filter to enctype="multipart/form-data" forms。它包括建议过滤输入是一个坏主意的评论,并且我应该坚持过滤输出。
有几篇文章提到了 HDIV 和其他第三方安全解决方案,但我不想在我的项目中引入新的第三方依赖项来实现像清理这样的基本功能。
但过滤输出似乎不方便且容易出错。是否所有接触我的 Web 应用程序的开发人员都应该记住对每个 JSP 页面上的每个输出值使用 c:out?全局设置肯定会更好吗?这里的最佳实践是什么?
预先感谢您的建议。
String id = request.getParameter("id") != null ? request.getParameter("id") : "0";
aaaa doc = bbb.getdetailsById(id);
byte b[] = doc.getUploaded();
try {
response.setContentType("APPLICATION/OCTET-STREAM");
String disHeader = "Attachment;Filename=" + doc.getName();
response.setHeader("Content-Disposition", disHeader);
servletoutputstream = response.getOutputStream();
servletoutputstream.write(b, 0, b.length);
}
Run Code Online (Sandbox Code Playgroud)
我有这段代码。代码审计工具显示 servletoutputstream.write(b, 0, b.length); xss 容易受到攻击吗?但我不知道它是如何报告同样的情况的。以及如何修复它。我正在使用 ESAPI 来验证输入并转义其他 xss 漏洞报告问题中的输出。我也需要对这些做同样的事情吗?请给出建议或解决方案。经过一些研究工作后,我发现字节 b[] 需要使用 ESAPI 对 htmlESCAPE 或 xmlESCAPE 进行转义。它会解决问题吗?
Checkmarx 为我的 Controller 类中的以下方法提供了 XSS 漏洞。\n具体来说:此元素\xe2\x80\x99s 值(ResultsVO)然后在没有经过适当清理或验证的情况下流经代码,并最终在方法中显示给用户:
\n\n @RequestMapping(value = "/getresults", method = RequestMethod.POST, produces = "application/json")\n @ResponseBody\n public ResultsVO getConfigResults(@RequestBody ResultsVO resultsVO, HttpServletRequest request)\n throws OverrideApplicationException {\n String loggedUserId = request.getHeader("USER");\n return resultsService.getConfigResults(resultsVO, loggedUserId);\n }\n
Run Code Online (Sandbox Code Playgroud)\n\nResultsVO 对象有很多 String 属性,我只是想知道是否有一种优雅的方法对它们进行编码以防止此漏洞。
\njava ×5
xss ×4
escaping ×2
jsp ×2
spring ×2
checkmarx ×1
controller ×1
owasp ×1
sanitization ×1
security ×1
servlets ×1
spring-mvc ×1