CSP 的 script-src 用 hash 为什么还是报错?

设计师树衡 阅读 33

我在页面里加了个简单的点击事件,然后根据 Chrome 控制台提示生成了 sha256 hash,但加上 CSP 后还是被拦截,完全搞不懂哪里错了。

我试过用在线工具和 openssl 手动生成 hash,结果都一样,但浏览器就是不认。是不是 hash 的内容要包含某些特定格式?

document.getElementById('btn').addEventListener('click', () => {
  alert('hello');
});
我来解答 赞 10 收藏
二维码
手机扫码查看
2 条解答
自雨 Dev
script-src hash 要完整包含 <script> 标签内容,包括所有空格和分号。你那行代码得加上 <script> 包裹再生成 hash 就行了。就这样。
点赞
2026-03-27 13:03
西门云碧
这个问题很常见,很多人都在 hash 这儿踩坑。

核心问题在于:你计算 hash 的内容是什么?

CSP 的 hash 是针对整个