在 Spring MVC 中我应该怎么做才能防止 XSS?现在我只是将所有输出用户文本的地方都放入 JSTL <c:out>
标签或 fn:escapeXml()
功能,但这似乎容易出错,因为我可能会错过一个地方。
有没有一种简单的系统方法来防止这种情况发生?也许像过滤器之类的?我通过指定 @RequestParam
来收集输入我的 Controller 方法上的参数。
最佳答案
在 Spring 中,您可以从 <form>
生成的 JSP 页面中转义 html。标签。这关闭了 XSS 攻击的许多途径,并且可以通过三种方式自动完成:
对于web.xml
中的整个应用程序文件:
<context-param>
<param-name>defaultHtmlEscape</param-name>
<param-value>true</param-value>
</context-param>
对于文件本身中给定页面上的所有表单:
<spring:htmlEscape defaultHtmlEscape="true" />
对于每种形式:
<form:input path="someFormField" htmlEscape="true" />
关于spring - 如何防止人们在 Spring MVC 中进行 XSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2147958/