我试图避免用户在我的html中使用浏览器检查器编写javascript,而我自己的内联和页内javascript可以运行。
我在IIS中尝试过这些内容安全策略标头:
default-src 'self' site.com ;style-src 'self' site.com 'unsafe-inline';script-src 'self' site.com 'unsafe-inline'
这将允许运行我自己的代码,但用户可以在html和以下内容中注入javascript:
default-src 'self' site.com ;style-src 'self' site.com 'unsafe-inline';script-src 'self' site.com
不会让用户注入代码,但我自己的代码不能再运行了。
如何避免用户在我的html代码中注入类似alert('ok'(的代码,但使用IIS在内联和页内运行javascript代码?
根据这一点,如果你想确保只有原始的内联代码可以运行,那么你可以计算内联JavaScript的哈希,并将其放入CSP策略中,如下所示:
script-src js-cdn.example.com 'sha256-xzi4zkCjuC8lZcD2UmnqDG0vurmq12W/XKM5Vd0+MlQ='
当CSP阻止内联脚本时,您的浏览器开发工具控制台可能会为您计算哈希并在控制台中输出。