【问题标题】:Content security unsafe-eval policy only for one url内容安全不安全评估策略仅适用于一个 url
【发布时间】:2016-08-10 15:25:59
【问题描述】:

如何只为一个来源添加指令“unsafe-eval”?

我正在开发一个 Cordova 应用程序,因为我需要允许来自多个源的 script-src(外部脚本,如 twitter 等。)我在 meta http-equiv="Content-Security-Policy : 脚本源 *

<meta http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' data: gap: * 'unsafe-eval'; style-src 'self' 'unsafe-inline'; script-src * 'self' 'unsafe-inline' 'unsafe-eval';">

这可行,但很危险,因为它是敞开的。

所以我想仅为需要它的脚本添加“unsafe-eval”(在我的示例中为https://maps.googleapis.com

有可能吗?

【问题讨论】:

    标签: content-security-policy


    【解决方案1】:

    你不能。

    'unsafe-eval' 在策略中不是应用于某些特定脚本源的某种标志或属性。相反,它本身就是一个脚本源,正如您在 CSP 规范的摘录中看到的那样:

    source-expression = scheme-source / host-source / keyword-source / nonce-source / hash-source
    scheme-source     = scheme-part ":"
    host-source       = [ scheme-part "://" ] host-part [ port-part ] [ path-part ]
    keyword-source    = "'self'" / "'unsafe-inline'" / "'unsafe-eval'"
    

    此外,即使可以,这也不能保护您免受其他脚本的影响,该脚本会触发地图 api 代码中的不安全评估,并使用自己的字符串进行评估。

    看看CSP unsafe-eval using Google Maps API,也许你可以完全摆脱'unsafe-eval'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-14
      • 2021-08-07
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 2016-06-22
      • 1970-01-01
      相关资源
      最近更新 更多