You*_*l-Y 4 content-security-policy
我想为“ script-src”策略允许“ unsafe-eval”,但仅针对特定域。
例如,我只希望来自* .example.net的脚本能够使用eval()。
script-src 'unsafe-inline' *;script-src 'unsafe-eval' 'unsafe-inline' *.example.net blob:;
Run Code Online (Sandbox Code Playgroud)
上面的方法不起作用。我该如何实现这种行为?
我想为“ script-src”策略允许“ unsafe-eval”,但仅针对特定域。
我该如何实现这种行为?
你不能 内容安全策略没有提供实现此目的的方法。
两者'unsafe-eval'和*.example.net都是CSP规范称为“源表达式”的不同类型,而CSP指令script-src称为“源列表”的CSP指令的值是单独的各个源表达式的列表。
CSP源列表中的源表达式彼此之间没有内部关联-而是它们每个都全局地应用于与其关联的指令。
因此,如果您指定指令'unsafe-eval'的值script-src,则始终具有全局允许eval()文档中依赖的任何JavaScript代码的效果。
有没有其他的语法CSP表示“仅允许'unsafe-eval'用于*.example.net”。根本无法在CSP中表达这一点。
从https://w3c.github.io/webappsec-csp/#framework-directive-source-list:
许多指令的值由源列表组成:字符串集,用于标识可以获取并可能嵌入或执行的内容。每个字符串代表以下类型的源表达式之一:
诸如
'none'和'self的关键字(分别不匹配任何内容和当前URL的来源)序列化的URL,例如
https://example.com/path/to/file.js(与特定文件匹配)或https://example.com/(与该原始文件上的所有内容匹配)方案,例如
https:(与具有指定方案的任何资源匹配)主机(例如
example.com(与主机上的任何资源匹配,而与方案无关)或*.example.com(与主机的子域(及其子域的任何子域,等等)匹配)随机数,例如
'nonce-ch4hvvbHDpv7xCSvXCs3BrNggHdTzxUA'(可以匹配页面上的特定元素)摘要,例如
'sha256-abcd...'(可以匹配页面上的特定元素)
| 归档时间: |
|
| 查看次数: |
1322 次 |
| 最近记录: |