属性内联JS的CSP哈希或随机数

fle*_*lex 5 html javascript content-security-policy

内容安全策略的新手,因此不确定是否可以实现,但是想知道如何在HTML元素的属性内为某些内联脚本添加哈希或随机数。

例如:

<form method="post" onsubmit="function();">
Run Code Online (Sandbox Code Playgroud)

在谷歌浏览器中给我以下CSP错误:

拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“ script-src'self'。'unsafe-inline'关键字,哈希('sha256 -...')或随机数('必须启用nonce -...')才能启用内联执行。

我已经尝试过仅对脚本进行哈希处理,例如function();以及onsubmit="function"都不起作用。我尝试将一个随机数添加到form元素,但这没有帮助。

如果需要,我可以将事件绑定移到element属性之外,只是想知道是否有一种方法可以坚持上述要求。

Wel*_* PF 1

转到您的内容被阻止的端点。查看浏览器上的控制台。您的浏览器将通知被阻止的内容,并且还会为您提供通过 CSP 解锁该内容所需的哈希值。

来源:https ://www.troyhunt.com/locking-down-your-website-scripts-with-csp-hashes-nonces-and-report-uri/