内容安全策略

Webpack 能够为其加载的所有脚本添加 nonce。要激活此功能,请设置 __webpack_nonce__ 变量并将其包含在您的入口脚本中。然后将为每个唯一的页面视图生成一个唯一的基于哈希的 nonce(这就是为什么 __webpack_nonce__ 在入口文件中指定而不是在配置中指定的原因)。请注意,__webpack_nonce__ 始终应该是 base64 编码的字符串。

示例

在入口文件中

// ...
__webpack_nonce__ = 'c29tZSBjb29sIHN0cmluZyB3aWxsIHBvcCB1cCAxMjM=';
// ...

启用 CSP

请注意,CSP 默认情况下未启用。需要使用相应的标头 Content-Security-Policy 或元标记 <meta http-equiv="Content-Security-Policy" ...> 发送文档,以指示浏览器启用 CSP。以下是一个包含 CDN 白名单 URL 的 CSP 标头的示例

Content-Security-Policy: default-src 'self'; script-src 'self'
https://trusted.cdn.com;

有关 CSP 和 nonce 属性的更多信息,请参阅本页底部的 **进一步阅读** 部分。

Trusted Types

Webpack 还能够使用 Trusted Types 加载动态构建的脚本,以遵守 CSP require-trusted-types-for 指令限制。请参阅 output.trustedTypes 配置选项。

4 位贡献者

EugeneHlushkoprobablyupwizardofhogwartskoto