我正在尝试使用某些网页的特定元标记来覆盖内容安全策略。
我已经尝试了几个小时,但我还没有成功。
有没有办法在不必修改服务器配置的情况下从页面本身(使用JavaScript或元标记)覆盖CSP?
谢谢。
答案 0 :(得分:5)
没有
出于安全原因,元标记只能使策略更严格,不能放宽标题中定义的策略。
如果元标记可以放宽政策,CSP就没有牙齿了。任何恶意方都可以添加元标记来禁用该策略,并避免应该采取的所有限制。
答案 1 :(得分:2)
您可以拧紧,但不能放松。您可以重新配置站点,以在生成页面的代码内收紧/松开CSP。例如,在PHP中,您可以创建一个标头,但以后要覆盖该标头-只要您这样做,就可以在向浏览器实际输出任何内容之前。
这是我在自己管理的网站上所做的工作-每个页面都有一个非常严格的默认CSP标头,但是在特定页面上,我可能会放宽它以允许特定于该页面的某些内容。但是您必须在生成页面本身时执行此操作;发送初始CSP标头后,您将无法使用元标记或JavaScript。