我们正在尝试将CSP实现到我们的一个站点中,尽管我们了解如何允许或不允许脚本,但我们仍然对nonce/sha*部分感到困惑。我们有外部脚本,如 bootstrap 和 jquery,它们带有 integrity="sha*",应该避免内联脚本或样式。内联的所有内容都应重构到外部文件中。
我们的问题是,我们是否为我们站点(非外部(中的每个js或css文件创建一个sha*键/nonce-*,或者只是在Content-Security-Policy中的script-src/style-src之后放置"self"就足够了?
感谢您对此的任何帮助。
链接的JavaScript 文件不需要随机数;它们授权内联脚本标签。 "自我"(或 URL(授权链接的文件。 您必须做的清理是删除HTML中的"onclick"属性。 SHA 哈希用于验证链接文件的完整性。
所以:
- 清理内联"onclick"(和类似(和"样式"属性。
- 对内联脚本(和样式(标记使用随机数。
- 对来自外部源的链接脚本使用 SHA 哈希