Spring Security Spring安全中的Xss保护默认启用了吗?

x33g5p2x  于 2023-06-23  发布在  Spring
关注(0)|答案(2)|浏览(167)

我想在我的应用程序中启用Spring Security XSS保护。
1)阅读文档和博客时,https://spring.io/blog/2013/08/23/spring-security-3-2-0-rc1-highlights-security-headers/表示默认情况下存在XSS
2)而http://docs.spring.io/spring-security/site/docs/current/reference/html/headers.html表示默认情况下它不存在
3)如果我在扩展WebSecurityConfigurerAdapter的类中的configure方法中使用http.headers().xssProtection():这是否禁用了所有其他默认头?

carvr3hs

carvr3hs1#

除非您特别包含以下代码以禁用默认值,否则不会禁用默认值。

http.headers().defaultsDisabled()

第1点和第2点,我的理解是博客和文档都有相同的信息。

X-XSS-Protection: 1; mode=block

过滤(过滤XSS攻击)通常在默认情况下启用,因此添加标头通常只是确保它被启用,并指示浏览器在检测到XSS攻击时该做什么。

jljoyd4f

jljoyd4f2#

根据Spring Security documentation,当使用EnableWebSecurity的默认构造函数时,默认情况下会激活安全HTTP头。默认标题包括:

Cache-Control: no-cache, no-store, max-age=0, must-revalidate
  Pragma: no-cache
  Expires: 0
  X-Content-Type-Options: nosniff
  Strict-Transport-Security: max-age=31536000 ; includeSubDomains
  X-Frame-Options: DENY
  X-XSS-Protection: 0

X-XSS-Protection头在这里。然而,它被禁用了,因为现代浏览器已经不推荐使用该头,因为它的使用可能会在客户端引入额外的安全问题。
OWASP建议不要设置此头或显式地关闭它:https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html#x-xss-protection

相关问题