node.js - 具有反应路由器和 nodejs 的项目中的 CSP 问题
问题描述
我正在制作一个使用 React 路由器的 React 应用程序,并在后端 nodejs + express 上。我的任务是,在联系http://example.ru时,我给一个反应应用程序,而当http://example.ru/admin另一个时。问题是,如果我通过反应路由器 (NavLink)访问http://example.ru/shop ,我的 CSP 设置将起作用。但是,如果我使用浏览器地址栏,则 CSP 设置不起作用,或者它们仅适用于http://example.ru。
我的 CSP 设置
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src http://localhost:3001 https://sun9-23.userapi.com https://steamcdn-a.akamaihd.net https://gspics.org data:">
如果通过浏览器地址栏 https://i.stack.imgur.com/CMV9b.png访问http://example.ru/shop会出错
在浏览器开发者工具中,有一个元标记。 https://i.stack.imgur.com/S15C7.png
解决方案
如果要加载外部图像,则需要在img-src
策略中包含其域,在本例中为https://i.stack.imgur.com
. 您还应该替换http://localhost:3001
为'self'
.
你的meta
标签应该是:
<meta http-equiv="Content-Security-Policy" content="default-src *; img-src 'self' https://sun9-23.userapi.com https://steamcdn-a.akamaihd.net https://i.stack.imgur.com https://gspics.org data:">
推荐阅读
- python - 使用 Bi-LSTM 和 glove 的多类分类
- amazon-web-services - AWS:使用 Batch / ECS 挂载模板磁盘
- flutter - 如何在不传递参数的情况下使用riverpod 系列提供程序
- arrays - 如何将文件中的数据读入C中的二维数组?
- r - 在 R 包中保存 R6 类模板
- java - 使用 Stream 将列表转换为另一个列表
- multithreading - 朱莉娅多线程不能扩展令人尴尬的并行工作
- javascript - 赛普拉斯 - find() 和 within() 方法之间的区别
- regex - 没有结束分隔符的匹配组的正则表达式
- c# - Unity IOC 与 winforms MVP 多个实例