gpt4 book ai didi

google-chrome-extension - 内联事件脚本的 Chrome 扩展 CSP sha-256 哈希

转载 作者:行者123 更新时间:2023-12-04 13:04:51 26 4
gpt4 key购买 nike

我正在尝试实现内容安全策略以使用 sha-256 在 chrome 扩展中启用内联处理程序执行每个内联事件脚本的哈希值。

但我不能让它工作:我提取了所有的内联和计算的哈希值,以便我的 content_security_policy现在看起来像这样:
"content_security_policy": "script-src 'self' 'unsafe-eval' 'sha256-Zy8+Ft7FDcIkrTYgl2BKmEW5XD97XustxKPceyLSioQ=' 'sha256-YNkUpNj1B2/FuE2RmwQf40OIO5rH69xQbG5AAxwshrA=' 'sha256-Pmun4RTarna683hWYftYdXPERPfEVV5fB+qvqh3xnmg=' ... ... 'sha256-RoSxVuvjYKDbU5f+aUEw02rEM9e2Lp9Hz/+rxbp6OMw='; object-src 'self'"
例如,对于 onclick="w2ui['grid'].click('1', event);"我收到 sha256-Zy8+Ft7FDcIkrTYgl2BKmEW5XD97XustxKPceyLSioQ=
The docs state这是一个受支持的方法,但它仍然会引发错误
Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' 'sha256-Zy8+Ft7FDcIkrTYgl2BKmEW5XD97XustxKPceyLSioQ=' 'sha256-YNkUpNj1B2/FuE2RmwQf40OIO5rH69xQbG5AAxwshrA=' 'sha256-Pmun4RTarna683hWYftYdXPERPfEVV5fB+qvqh3xnmg=' ... ... Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution.
这是一个已知的错误还是我只是滥用了这个概念?

最佳答案

这里的答案似乎是 chrome - 由于某种原因 - 根本不支持内联事件散列;我能够通过使用 'unsafe-eval' 预先评估所有内联来解决这个问题。允许:

var events = ["onclick", "onmouseover", "onmouseout", "onmousedown",
"onmouseup", "onscroll", "oncontextmenu", "onmousewheel", "ondblclick"];
function vulcanize_inlines() {
for(var i=0;i<events.length;i++) {
var els = getAllElementsWithAttribute(events[i]);
for(var j=0;j<els.length;j++) {
var fun = eval("(function a(){"+els[j].getAttribute(events[i])+"})");
els[j].removeAttribute(events[i]);
els[j][events[i]] = fun;
}
}
}

并将其添加到 .onload :

vulcanize_inlines();
var target = document.body;
var observer = new MutationObserver(function(mutations) {
vulcanize_inlines();
});
var config = { /*attributes: true,*/ childList: true,
characterData: true, subtree: true };
observer.observe(target, config);
getAllElementsWithAttribute我用过 this answer

关于google-chrome-extension - 内联事件脚本的 Chrome 扩展 CSP sha-256 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36268414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com