§配置安全标头
Play 提供了一个安全标头过滤器,可用于配置 HTTP 响应中的一些默认标头,以缓解安全问题并为新应用程序提供额外的防御层。
§启用安全标头过滤器
注意:从 Play 2.6.x 开始,安全标头过滤器包含在 Play 的默认过滤器列表中,这些过滤器会自动应用于项目。有关更多信息,请参阅 过滤器页面。
要手动启用安全标头过滤器,请在 application.conf
中将安全标头过滤器添加到您的过滤器中
play.filters.enabled += "play.filters.headers.SecurityHeadersFilter"
§配置安全标头
Scaladoc 可在 play.filters.headers 包中找到。
过滤器将自动在 HTTP 响应中设置标头。可以通过 application.conf
中的以下设置配置设置
play.filters.headers.frameOptions
- 设置 X-Frame-Options,默认值为“DENY”。play.filters.headers.xssProtection
- 设置 X-XSS-Protection,默认值为“1; mode=block”。play.filters.headers.contentTypeOptions
- 设置 X-Content-Type-Options,默认值为“nosniff”。play.filters.headers.permittedCrossDomainPolicies
- 设置 X-Permitted-Cross-Domain-Policies,默认值为“master-only”。play.filters.headers.referrerPolicy
- 设置 Referrer Policy,默认值为“origin-when-cross-origin, strict-origin-when-cross-origin”。play.filters.headers.contentSecurityPolicy
- 设置 Content-Security-Policy,默认值为“default-src ‘self’” 。
注意:
contentSecurityPolicy
属性已弃用,默认值在 Play 2.7 中已设置为null
。有关详细信息,请参阅 CspFilter。
任何标题都可以通过将配置值设置为null
来禁用,例如
play.filters.headers.frameOptions = null
有关配置选项的完整列表,请参见 Play 过滤器 reference.conf
。
§特定于操作的覆盖
可以使用结果上的withHeaders
在特定操作中覆盖安全标头
Ok("Index").withHeaders(SecurityHeadersFilter.REFERRER_POLICY -> "my page-specific header")
在withHeaders
中未提及的任何安全标头将使用通常配置的值
(如果存在)或默认值。特定于操作的安全标头将被忽略,除非play.filters.headers.allowActionSpecificHeaders
在配置中设置为true
。
下一步: 配置 CORS
在此文档中发现错误?此页面的源代码可以在 此处 找到。阅读完 文档指南 后,请随时贡献拉取请求。有疑问或建议要分享?前往 我们的社区论坛 与社区开始对话。