防止xss攻击spring

mwngjboj  于 2023-03-28  发布在  Spring
关注(0)|答案(1)|浏览(94)

在我的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 )应用程序?

pengsaosao

pengsaosao1#

恕我直言,这些应该是足够的.知道的最好方法是测试它.测试XSS漏洞是很容易的.您可以参考这个link .请确保您测试旧的应用程序也重现问题,然后验证其在最新版本中修复.

相关问题