java - 如何设置 script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline' ; 播放框架 2.6.x 中的特定页面或路径?
问题描述
我一直在尝试在我的网络应用程序中设置一个文本编辑器。在哪里访问文本编辑器我必须允许 script-src 'self' 'unsafe-inline' 'unsafe-eval' 和 style-src 'unsafe-inline'。但是在 playframework 2.6.xi 中必须通过
play.filters.headers.contentSecurityPolicy
在配置文件中进行设置,这使得整个应用程序不安全。
注意:元标记不起作用,即使我尝试通过过滤器在响应标头中传递 Content-security-policy。没有任何效果。
在这种情况下,是否有任何方法可以设置script-src 'self' 'unsafe-inline' 'unsafe-eval' and style-src 'unsafe-inline'
play 2.6.x 中的任何特定页面或路径?
解决方案
# Security Filter Configuration - Content Security Policy
play.filters.headers {
contentSecurityPolicy = "default-src 'self';"
contentSecurityPolicy = ${play.filters.headers.contentSecurityPolicy}" img-src 'self' *.fbcdn.net *.twimg.com *.googleusercontent.com *.xingassets.com vk.com *.yimg.com secure.gravatar.com;"
contentSecurityPolicy = ${play.filters.headers.contentSecurityPolicy}" style-src 'self' 'unsafe-inline' cdnjs.cloudflare.com maxcdn.bootstrapcdn.com cdn.jsdelivr.net fonts.googleapis.com;"
contentSecurityPolicy = ${play.filters.headers.contentSecurityPolicy}" font-src 'self' fonts.gstatic.com fonts.googleapis.com cdnjs.cloudflare.com;"
contentSecurityPolicy = ${play.filters.headers.contentSecurityPolicy}" script-src 'self' cdnjs.cloudflare.com;"
contentSecurityPolicy = ${play.filters.headers.contentSecurityPolicy}" connect-src 'self' twitter.com *.xing.com;"
}
播放 2.7 在某个动作上它看起来像:
Ok("Index").withHeaders(SecurityHeadersFilter.REFERRER_POLICY -> "my page-specific header")
检查文档:https ://www.playframework.com/documentation/2.7.x/SecurityHeaders#Action-specific-overrides
但是在Play 2.7中已弃用 - 请改用 CSP - 请参阅:https ://www.playframework.com/documentation/2.7.x/CspFilter#Enabling-CSP-on-Specific-Actions
也有可能(在同一个文档上)route
从 CSP 过滤器中排除 a,例如:
+ nocsp
POST /report-to controllers.CSPReportController.report
推荐阅读
- php - Postgres 查询在“where”处或附近给出语法错误
- github - 使用 GitHub 使页面上线
- angular - 如何在 Angular 2+ 中基于组件创建模板?
- python-3.x - 在 igraph 上使用 cairo 绘图时出错:模块 'cairo' 没有属性 'Surface'
- join - awk 匹配/比较/每个文件中的 2 列(对于 2 个文件)
- geocoding - 您已超出此 API 的每日请求配额。甚至使用 api 密钥
- spring - 无法代理接口实现方法 [public final void AbstractTestNGSpringContextTests.setApplicationContext()]
- vba - 通过输入框输入的数字未链接到我在 B 列中的公式
- ruby - 如何使用 selenium 网格对 appium 运行并行测试?
- angular - 根据从另一个 primeNg 多选下拉列表中选择/取消选择的值,从 primeNg 多选下拉列表中添加/删除项目/值