内容安全策略:页面的设置阻止加载 blob:https://... (“frame-src”) 上的资源

Fer*_*acs 6 firefox blob node.js content-security-policy koa

我有一个嵌入式 Shopify 应用程序,前端带有 React (Polaris),后端带有 Node (Koa.js)。该应用程序的一项功能是将某些信息导出为 Excel 电子表格。

\n\n

为了生成该文件,我使用xlsx包和文件保护程序来下载它。\n在 Chrome (v 80.0.3987.132) 中一切正常,但在 Firefox (v 73.0) 中,当我单击下载文件的按钮:

\n\n
\n

内容安全策略:页面\xe2\x80\x99s 设置阻止加载 blob:https://... (\xe2\x80\x9cframe-src\xe2\x80\x9d) 处的\n 资源。

\n
\n\n

由于这是一个嵌入式应用程序,因此它在 iframe 内运行。根据错误消息,我认为 iframe 内 blob 的内容安全策略阻止了要下载的文件,因此我使用以下设置将koa-helmet添加到我的后端:

\n\n
    const Koa = require(\'koa\');\n    const KoaHelmet = require(\'koa-helmet\');\n\n    const server = new Koa();\n\n    server.use(KoaHelmet({\n         frameguard: false,\n         contentSecurityPolicy: {\n              directives: {\n                  frameSrc: ["\'blob\'"]\n              }\n         }\n    }));\n
Run Code Online (Sandbox Code Playgroud)\n\n

我也尝试过,,,,frameSrc: ["\'blob:\'"]但这些都frameSrc: ["\'blob:;\'"]没有解决问题。\'frame-src\': ["\'blob\'"]\'frame-src\': ["\'blob:\'"]\'frame-src\': ["\'blob:;\'"]

\n\n

我缺少什么?

\n