【发布时间】:2021-01-17 16:54:33
【问题描述】:
上下文描述 我正在使用 AWS Amplify 部署我的静态网页。
自定义安全标头通过配置文件 customHttp.yml (https://docs.aws.amazon.com/amplify/latest/userguide/custom-headers.htm) 应用在部署中
我将 customHttp.yml 文件包含在 .nuxtignore 文件中,以防止仅在自定义标头更改时触发 webpack 文件的重建。但是,这只适用于本地,而不是部署过程中的服务器端。
问题描述 AWS Amplify 在部署过程中不使用 .nuxtignore 文件。因此,每次都会重新构建 webpack 文件,从而产生不同的哈希值,我需要将其包含在 CSP 头字段 script-src 和 style-src 中。但是由于触发重建以对 customHttp.yml 进行修改会导致 jetpack 文件具有新的值,因此我们永远无法预先知道正确的值。
解决问题的建议 随机数将(如果是静态的)解决我的用例。例如,通过在 nuxt.config.js 文件中定义 nonce。通过在 webpack 重建中包含 nonce,我将能够在 CSP 标头字段中引用静态 nonce,因为值不会改变。
例如——nuxt.config.js:
生成:{ 脚本随机数:'nonce-457bb2Bb06E44Ab5aa9996Ed1a34b26F', style-nonce: 'nonce-[在此处添加值]' }
我意识到,每次服务器传输 CSP 策略时,内容安全策略规范都需要一个唯一的 nonce 值,但对于这个用例,我更喜欢静态 nonce。
【问题讨论】:
标签: webpack nuxt.js aws-amplify content-security-policy