【问题标题】:How can I set script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline' ; for specific page or path in play framework 2.6.x?如何设置 script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline' ;播放框架 2.6.x 中的特定页面或路径?
【发布时间】:2019-07-04 09:36:12
【问题描述】:

我一直在尝试在我的网络应用中设置文本编辑器。在哪里访问文本编辑器我必须允许 script-src 'self' 'unsafe-inline' 'unsafe-eval' 和 style-src 'unsafe-inline'。但是在 playframework 2.6.x 中我必须通过 play.filters.headers.contentSecurityPolicy 在配置文件中,这使整个应用程序不安全。

注意:元标记不起作用,即使我尝试通过过滤器在响应标头中传递 Content-security-policy。没有任何效果。

在这种情况下,有没有办法为 play 2.6.x 中的任何特定页面或路径设置script-src 'self' 'unsafe-inline' 'unsafe-eval' and style-src 'unsafe-inline'

【问题讨论】:

    标签: java scala playframework playframework-2.3


    【解决方案1】:

    这是来自Silhouette Seed Template 的示例

    # 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

    也有可能(在同一个文档上)从 CSP 过滤器中排除 route,例如:

    + nocsp
    POST     /report-to                 controllers.CSPReportController.report
    

    【讨论】:

    • 我认为这将适用于应用程序的所有响应。有没有办法指定任何预期的响应?
    • 检查我的答案 - 我在 Play 2.6 中找不到它。
    • “从 CSP 过滤器中排除路由”带有+ nocsrf 标签?错字?
    • @AndriiAbramov +nocsrf 表示没有跨站请求伪造过滤器,其中 +nocsp 表示路径上没有安全内​​容策略
    猜你喜欢
    • 2020-09-19
    • 2016-05-04
    • 1970-01-01
    • 2020-10-12
    • 2021-02-14
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多