CSP中的strict-dynamic有什么用?为什么我的动态脚本还是被阻止了?

付楠 阅读 24

我在给项目配置CSP时用了’strict-dynamic’,但页面加载时动态创建的script标签还是报blocked错误。比如这样:


const script = document.createElement('script');
script.src = '/assets/dynamic.js';
document.head.appendChild(script);

CSP头设置的是:


Content-Security-Policy: default-src 'none'; script-src 'strict-dynamic' 'nonce-123ABC' https://cdn.example.com;

明明加了strict-dynamic应该允许动态脚本啊?尝试过把nonce加在script元素上也没用,控制台还是提示违反CSP策略。是不是哪里配置错了?

我来解答 赞 6 收藏
二维码
手机扫码查看
2 条解答
Designer°瑞云
strict-dynamic的作用是允许由可信脚本动态创建的脚本执行,但前提是创建它的那个“父脚本”本身必须是被CSP信任的。你当前的问题在于创建动态