每当索引页面上出现 XSS 元标记时加载脚本时出现问题

An issue when loading script whenever the XSS meta tag present on index page

我正在为具有以下元 header 的安全网站实施可访问性解决方案:

<meta http-equiv="Content-Security-Policy" content="default-src *; child-src 'none'; object-src 'none';img-src 'self' data:;style-src 'self' 'unsafe-inline'">

还有一个脚本标签负责注入我的解决方案代码(写在javascript),它包含以下功能:

fix.ReadXml = function () {

$.getScript(this.path, function () {

    // Some callback code...
}); };

路径设置正确,我可以保证。这是我的脚本执行逻辑中的第一个 ajax 调用,被调用的脚本文件已加载,但是回调函数没有被触发,执行链在这里中断,chrome 控制台中没有错误代码任何。

当开发人员删除他的 XSS 元标记时,脚本执行会正确进行并且我的解决方案会正常加载。 所以,任何人都可以给我解释为什么会发生这种情况。遗憾的是,元标记是网站安全政策的一部分,无法删除。有什么我应该添加到我的代码中以便在元标记存在时触发回调吗?

提前致谢。

加载 Content-security-policy 时,它会禁用内联脚本和某些 javascript 函数。浏览器开发人员控制台会告诉您导致问题的原因。我的猜测是您正在从外部域加载脚本(当前的元策略只允许相同的域)或者 getscript 在内部使用 eval(并且 CSP 禁用 eval)。没有简单的解决办法。要么更改政策(用 header 覆盖),要么您将不得不以不同的方式做事。