【问题标题】:How to inject default security headers with Spring Security如何使用 Spring Security 注入默认安全标头
【发布时间】:2020-04-10 02:25:52
【问题描述】:

我使用 Spring Security 5.1.6,并阅读有关安全标头 here 的信息;

Spring Security 允许用户轻松注入默认安全性 标头以帮助保护其应用程序。默认为 Spring Security 将包含以下标头:

缓存控制:无缓存、无存储、max-age=0、必须重新验证
编译指示:无缓存
过期:0
X-Content-Type-Options: nosniff
严格的传输安全性: max-age=31536000 ;包括子域
X 帧选项:拒绝
X-XSS-保护:1;模式=块

但是从这个文档看来,这些头文件似乎没有被隐式添加,所以我需要自己注入默认头文件。问题是,我可以在 spring-security.xml 中做到这一点,还是必须以其他方式做到这一点?

【问题讨论】:

  • @AK47 好像没有,因为有些资源没有得到标题。 “让用户轻松注入”听起来好像真的要对我做点什么。

标签: java spring spring-security http-headers


【解决方案1】:

据我了解,默认头文件没有默认设置,需要在spring-security.xml中包含这个:

<security:headers/>

对于您希望包含默认标题的任何模式。
示例:

<security:http pattern="/certainpage.html" use-expressions="true" request-matcher="regex" authentication-manager-ref="authManagerLink">
        <security:http-basic/>
        <security:intercept-url pattern="/certainpage.html" access="permitAll"/>
        <security:headers/>
</security:http>

只添加特定的安全标头是这样完成的:

<security:headers>
            <security:frame-options policy="SAMEORIGIN"/>
            <security:content-type-options disabled="false" />
            <security:xss-protection enabled="true" block="true" />
</security:headers>

我正在使用&lt;spring.security.version&gt;5.1.6.RELEASE&lt;/spring.security.version&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2012-01-04
    • 2018-05-13
    • 2020-11-28
    • 2015-08-17
    • 2017-09-12
    • 1970-01-01
    相关资源
    最近更新 更多