无法通过PHP修改内容安全策略标头

ifsvaxew  于 2023-02-18  发布在  PHP
关注(0)|答案(1)|浏览(141)

我有这个问题有一段时间了,但它只是现在成为一个真正的问题。
我在几年前实施了内容安全政策。我使用PHP来设置标题。下面是我的标题。
内容安全策略: 默认源代码"自定义" www.googleadservices.com www.example.com www.google-analytics.com www.example.comssl.google-analytics.com www.google-analytics.com googleads.g.doubleclick.net
这很好用。但是,如果我以任何方式改变它,发送的头仍然是一样的。即使我删除了代码,服务器还是会发送它。
我以为浏览器会缓存这个,但是新的浏览器和在线头检查器一样做同样的事情。我以为网络服务器会缓存这个,但是修改其他头指令工作正常。
我在Windows Web Server 2008上使用IIS7.5和PHP 5.6.31 NTS。
这是一个奇怪的问题,无论是谷歌还是SO搜索都没有发现任何东西。
旧代码:

header("Content-Security-Policy: default-src 'self' www.googleadservices.com 
ssl.google-analytics.com  www.google-analytics.com googleads.g.doubleclick.net
");

新代码:

header("Content-Security-Policy: default-src 'self' www.googleadservices.com 
ssl.google-analytics.com www.google-analytics.com googleads.g.doubleclick.net sealserver.trustwave.com; 
style-src 'self' fonts.googleapis.com; object-src 'none';
");

无论如何生成标题。

Content-Security-Policy: default-src 'self'  www.googleadservices.com 
ssl.google-analytics.com www.google-analytics.com 
googleads.g.doubleclick.net

任何提示都将不胜感激。

1l5u6lss

1l5u6lss1#

我用PHP来设置头。(...)然而,如果我以任何方式改变它,发送的头仍然是相同的。即使我删除了代码,服务器还是会发送它。
对于发送旧标头的原因,我的最佳猜测是:代码在一个奇怪的地方做了一些意想不到的事情。我会对header()的任何示例的整个源代码进行grep,并从那里开始。
对于一个长期的、易于维护的解决方案,您可能会发现CSP-Builder比手动编写它们更容易。

相关问题