我有以下内容安全策略
value="default-src 'self'
style-src 'self' 'unsafe-inline';
script-src 'self' 'unsafe-inline' 'unsafe-eval' http://svc.webspellchecker.net;
img-src 'self' data: https://s3.amazonaws.com;
frame-src 'self' *.salesforce.com *.force.com;"
这在 Chrome 和 Firefox 中运行良好。在 Edge 中它没有运行,因为我们有一些内联脚本(即 onClick="foo()
)。
我的理解是 default-src
设置默认值,而 script-src
应该覆盖这些默认值。
有谁知道这是否是 Edge 中的错误,或者我是否以某种方式搞砸了?
最佳答案
问题在于,虽然我们的 CSP 在 web.test.config 中看起来是这样的,但转换会将以下内容放入 web.config
value="default-src 'self'
 style-src 'self' 'unsafe-inline'; 

script-src 'self' 'unsafe-inline' 'unsafe-eval' http://svc.webspellchecker.net; 
 img-src 'self' data: https://s3.amazonaws.com;
 frame-src 'self' *.salesforce.com *.force.com;"
基本上,XDT 将值中的 CRLF 替换为 ,这会导致 Edge 放弃处理 CSP,因此您只能得到第一行。
关于microsoft-edge - Edge 忽略内容安全策略中的 script-src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34954042/