这里是我的demo.html文件,在这里我使用CSP标记和外部js和css文件。
demo.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' ; object-src 'none';
style-src 'self';
script-src 'sha256-Ql3n7tC/2D6wSTlQY8RcOKXhq02zfdaSDviOhpvbYWw=';
" >
<script src="scripts.js"></script>
</head>
<body>
<p>Hello World</p>
<h2>JavaScript Alert</h2>
<button>Try it</button>
</body>
</html>
这是我的js文件
console.log("Hello");
现在,我使用了CSP标记,它接受js哈希码来传递js文件,即脚本-src,并且我计算了'sha256-Ql3n7tC/2D6wSTlQY8RcOKXhq02zfdaSDviOhpvbYWw='哈希码,也就是我用script-src编写的sha256 hashcode。但它仍未被控制台接受。有什么问题吗?
发布于 2020-12-24 09:05:06
SHA是为特定脚本计算的校验和,应该加载它。看看它是如何在著名的图书馆中使用的。例如:自助
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>您尝试的是现在(128位),可以如下所示:
// Content-Security-Policy: script-src 'dsd14e314df23e2d32r'
<script nonce="dsd14e314df23e2d32r" src="https://app.domain.com/app.js"></script>发布于 2020-12-26 09:49:05
有三个问题:
console.log("Hello");的正确哈希是'sha256-efGKf8oWIWhXl5BsggWDZ+M7Bf5AirxrKOCBujdLAWg=‘。integrity=属性,以便通过'hash-value'<script src="script.js" integrity='sha256-efGKf8oWIWhXl5BsggWDZ+M7Bf5AirxrKOCBujdLAWg='></script>允许外部脚本'hash-value'来允许外部脚本(Safari -也是)。因此,使用Chrome观察结果。https://stackoverflow.com/questions/65435959
复制相似问题