clojure - 为什么我的 CSP 标头中间件不起作用?
问题描述
我编写了一个简单的中间件函数来将 Content-Security-Policy 标头添加到我的 API 路由中,我尝试使用多个策略(default-src、img-src、frame-ancestors)指向“self”或显式到“http://localhost:port”,但这些似乎都不起作用。
这是我的简单中间件:
(defn wrap-content-type-security
[handler]
(fn [req]
(let [resp (handler req)]
(header resp "Content-Security-Policy" "default-src 'self'"))))
但是我仍然遇到通常的 favicon.ico 路由错误,我确实有一个 /favicon.ico 的虚拟路由,它只返回一些文本,这也返回 CSP 标头。
显然我缺少/做错了一些事情,感谢您的帮助。
谢谢你。
编辑:对此进行更多研究,这似乎是与 Firefox 相关的问题?我试图在 Chrome 中复制该问题,并且一切似乎都运行良好,因为 favicon 确实显示在浏览器选项卡中。
这让我觉得它与“FaviconLoader.jsm”脚本有关?正在加载/显示在控制台上。
解决方案
您的中间件似乎正在工作(添加 CSP 标头),但您没有正确的 csp 标头值。尝试添加img-src 'self'
,看看是否有帮助。
顺便提一句。您可以尝试Content-Security-Policy-Report-Only
直到调整 CSP 标头。
推荐阅读
- javascript - 防止我的烧瓶应用程序重新加载,以免重新加载我的 javascript 并显示计时器
- java - 无法播放此视频。MediaPlayer:无法打开 /storage/emulated/0/...mp4
- python-3.x - 调用 pipenv shell 时出错
- java - 如何使用 Stream#reduce 提高字符串处理的性能?
- reactjs - 将普通变量转换为状态变量,同时处理异步问题
- flutter - 使用类型转换方法 (.toObjectBox) 在 ObjectBox 中存储嵌套数据结构
- c# - WPF Datagrid Binding:访问视图模型中绑定集合的当前评估项
- r - 在 r 中的一组中分配小于 5 的数据
- css - 在角度中使用带有线性渐变 CSS 的自定义材质主题
- json - 如何显示数组列表格式的 JSON 数据