在我的spring应用程序中,我有一些端点受到xss漏洞的影响。我被要求修复这个问题。这是我到现在为止所做的:
在web.xml中,我首先添加了:
<context-param>
<param-name>defaultHtmlEscape</param-name>
<param-value>true</param-value>
</context-param>
然后我添加了这个过滤器:
<filter>
<filter-name>charEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<javaee:param-name>encoding</javaee:param-name>
<javaee:param-value>UTF-8</javaee:param-value>
</init-param>
<init-param>
<javaee:param-name>forceEncoding</javaee:param-name>
<javaee:param-value>true</javaee:param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后添加xssFilter:
<filter>
<filter-name>XSSFilter</filter-name>
<filter-class>com.cj.xss.XSSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XSSFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
并将xssflt.jar复制到WEB-INF/lib中。
现在我想问的是,这是否足够,以及防止xss的正确方法?不幸的是,我们使用的是旧版本的spring-security(我们不能更新它,因为这是一个非常遗留的项目),我们不能实现CSP头。同时,清理用户输入对于遗留代码的性质来说是非常困难的。你能告诉我这是否是正确的路径,以保护我的Spring(无 Boot )应用程序?
1条答案
按热度按时间pengsaosao1#
恕我直言,这些应该是足够的.知道的最好方法是测试它.测试XSS漏洞是很容易的.您可以参考这个link .请确保您测试旧的应用程序也重现问题,然后验证其在最新版本中修复.