2017-10-10 182 views
2

我曾经遇到过这个问题,但现在才成为一个真正的问题。无法通过PHP修改内容安全策略头文件

几年前,我实施了内容安全策略。我使用PHP来设置标题。下面是我的标题。

内容安全-政策:默认-src的 '自我' www.googleadservices.com ssl.google-analytics.com www.google-analytics.com googleads.g.doubleclick.net

这完美的作品。但是,如果我以任何方式更改它,发送的标头仍然是相同的。即使我删除了服务器发送的代码。

我认为浏览器可能会缓存这个,但新的浏览器和在线头部检查器一样。我认为Web服务器可能会缓存这个,但对其他标题指令的修改可以正常工作。

我使用IIS7.5在Windows Web服务器2008

对PHP 31年6月5日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 

任何提示,将不胜感激。

+0

你检查过你的'iis'配置文件吗?从[这篇文章](https://stackoverflow.com/questions/37992225/config-your-iis-server-to-use-the-content-security-policy-header/37996726#37996726),你可以定义你的CSP在你的配置文件中;你可能早些时候用原来的CSP完成了这个工作,现在它正在覆盖你的新CSP –

+0

我从来没有在其他地方设置过CSP头,但无论如何我还是复选了,因为你永远不知道。该设置既不在web.config中,也不在C:\ Windows \ System32 \ inetsrv \ config中。我们有一些带有内嵌javascript的密码保护页面,所以我避免使用CSP站点范围。我会继续寻找。 –

+0

作为参考,这里是我的http头设置在IIS配置。 X-Frame:同源 X-X-XSS-Protection:1:模块 - X-XSS-Protection:1:模块 - –

回答

0

我使用PHP来设置标题。 (...)但是,如果我以任何方式更改它,发送的标头仍然是相同的。即使我删除了服务器发送的代码。

我最好的猜测,为什么老头被发送:代码是在奇怪的地方做一些意想不到的事情。我会grep整个源代码header()的任何实例,并从那里开始。

对于长期易维护的解决方案,您可能会发现比手动编写它们更容易。