Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 为什么我的CSP头中间件不工作?_Clojure_Http Headers_Ring - Fatal编程技术网

Clojure 为什么我的CSP头中间件不工作?

Clojure 为什么我的CSP头中间件不工作?,clojure,http-headers,ring,Clojure,Http Headers,Ring,我编写了一个简单的中间件函数,将内容安全策略头添加到我的API路由中,我尝试使用多个策略(默认src、img src、框架祖先)指向“self”或显式指向“http://localhost:port“但这些似乎都不起作用 这是我的简单中间件: (defn wrap-content-type-security [handler] (fn [req] (let [resp (handler req)] (header resp "Content-Security

我编写了一个简单的中间件函数,将内容安全策略头添加到我的API路由中,我尝试使用多个策略(默认src、img src、框架祖先)指向“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在浏览器标签上显示的那样。

但是在Firefox中,仍然显示出相同的问题:


这让我觉得它和“FaviconLoader.jsm”脚本有关?正在控制台上加载/显示。

似乎您的中间件正在工作(添加CSP头),但您没有正确的CSP头值。 尝试添加
imgsrc'self'
,看看是否有帮助


顺便说一句,在您调整CSP标题之前,您只能尝试
内容安全策略报告。

我已经尝试了这两种建议,但不幸的是,两者都不起作用。