我正在寻找一种方法,只允许列入白名单的脚本在沙盒iframe中运行.我在想一个iframe-sandbox指令,它只允许列入白名单的脚本在iframe中运行.类比是内容安全策略中的script-src指令.
问题:
<iframe sandbox="allow-same-origin allow-scripts" src="https://app.thirdparty.com" width="100%" height="800" frameBorder="0"></iframe>
Run Code Online (Sandbox Code Playgroud)
iframe中的应用程序为我的网站提供了有价值的功能.但是,它会吸引我想要控制的外部资源(即阻止),例如AnalyticsJavaScript.com和TrackingPixel.com.我想允许来自app.thirdparty.com的脚本,但阻止AnalyticsJavaScript.com和TrackingPixel.com.
任何帮助赞赏.
上下文描述 我正在使用 AWS Amplify 部署我的静态网页。
我将 customHttp.yml 文件包含在 .nuxtignore 文件中,以防止在仅自定义标头发生更改时触发 webpack 文件的重建。但是,这仅适用于本地,而不适用于部署过程中的服务器端。
问题描述 AWS Amplify 在部署过程中不使用 .nuxtignore 文件。因此,每次都会重新构建 webpack 文件,从而产生不同的哈希值,我需要将其包含在 CSP 标头字段 script-src 和 style-src 中。但由于触发重建以对 customHttp.yml 进行修改会导致 jetpack 文件产生新的值,因此我们永远不会预先知道正确的值。
解决问题的建议 随机数将(如果是静态的)解决我的用例。例如,通过在 nuxt.config.js 文件中定义随机数。通过在 webpack 重建中包含随机数,我将能够引用 CSP 标头字段中的静态随机数,因为该值不会更改。
例如 - nuxt.config.js:
生成:{ script-nonce:'nonce-457bb2Bb06E44Ab5aa9996Ed1a34b26F',style-nonce:'nonce-[在此处添加值]'}
我意识到内容安全策略规范在每次服务器传输 CSP 策略时都要求唯一的随机数值,但对于此用例,静态随机数将是我的首选建议。