小编Maj*_*kel的帖子

如何使用express/node.js配置CSP标头?

我尝试让标签在express/node.js环境中工作,但不知何故它们总是被内容安全策略阻止。

\n\n

我已经尝试使用多个节点模块,例如express-csp-header或csp-header,但它们都没有成功。所以我又回到了“正常”的声明。

\n\n

这是我的 server.ts 脚本的顶部:

\n\n
app.use((req: any, res: any, next: any) => {\n    res.set({\n        "Access-Control-Allow-Origin": "*",\n        "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept",\n        "Access-Control-Allow-Methods": "GET, POST, PATCH, DELETE, OPTIONS",\n        "Content-Security-Policy": "default-src *",\n        "X-Content-Security-Policy": "default-src *",\n        "X-WebKit-CSP": "default-src *"\n    })\n    next();\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

它由 webpack 编译,node 运行在 localhost 上,端口为 3000。

\n\n

它不适用于仅“default-src *”或类似的。我什至尝试单独声明每种内容类型,例如

\n\n
"default-src * \'self\' \'unsafe-inline\' \'unsafe-eval\'; script-src * \'self\' \'unsafe-inline\' \'unsafe-eval\' localhost:*/*"\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是 html 页面的 body 标记之后的脚本部分:\n(将其放在 head 部分也没有改变任何内容)

\n\n
<script src="scripts/loginFunctions.js"></script>\n
Run Code Online (Sandbox Code Playgroud)\n\n

也许有一些重要的事情:\nHTML 输出由 squirrelly(express 的模板引擎)提供 …

javascript http-headers node.js express content-security-policy

6
推荐指数
1
解决办法
9146
查看次数