我正在尝试在 HTML/EJS 页面内的外部文件中运行 javascript。代码如下:<body onload="initialize()">//HTML content <script src="/public/js/gallery.js"</script></body>“initialize()”函数位于“gallery.js”文件中。问题是我不断收到一个错误,内容如下:“拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”。“unsafe-inline”关键字、哈希值 ('sha256-tPMkUWbNPBXQQ3rlbFhILb35szR89eQb3Z41bzLr+wQ=') 或随机数需要 ('nonce-...') 才能启用内联执行。”我在页面上的“head”标签中尝试了许多尝试修复。其中包括“<meta Content-Security-Policy: script-src 'self' 'unsafe-inline'">”、“Content-Security-Policy: script-src 'self'”和“meta http-equiv=”content -安全策略内容=脚本-src“...这太令人抓狂了......我花了几个小时试图纠正这个问题。有人可以解释一下问题是什么吗......???我提前谢谢你。问候。“gallery.js”文件内容如下:addEventListener("load", initialize);function initialize() {//do stuff }
1 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
通过禁用禁止内联脚本的 CSP 规则来解决此问题并不是一个好主意。内联脚本是 XSS 攻击的主要载体。
相反,删除内联脚本并将等效功能放入.js
文件本身中。
onload="initialize()"
从 HTML 中删除。
添加addEventListener("load", initialize)
到 JS 中。
添加回答
举报
0/150
提交
取消