Safari:无法识别的内容 - 安全 - 政策指令'框架 - 祖先'

时间:2017-12-22 21:13:20

标签: php .htaccess safari meta content-security-policy

我有一个应用程序siteA.com加载在siteB.com内的iframe中。 没有警告直接加载siteA.com,但在siteB.com中的iframe中获取无法识别的内容 - 安全 - 政策指令'框架 - 祖先' ;这仅限于Safari。

所有这些更改都是在siteA.com上进行的

元标记没有运气

<meta http-equiv="Content-Security-Policy" content="frame-ancestors siteB.com">

我应该向siteA.com添加哪些标题以允许Content-Security-Policy指令框架 - 祖先?

然后我尝试在主要的 index.php 中添加:

header("Content-Security-Policy: frame-ancestors 'self' siteB.com;");

但仍然在siteA中工作,但不在siteB中工作。

还添加到 * .htaccess *

Header set Content-Security-Policy "frame-ancestors: siteB.com"

但没有。 由于Safari中的问题正在上升,所以也尝试了

header("X-Frame-Options: ALLOW-FROM siteB.com");

但这甚至会出错。

很好的部分是,如果框架 - 祖先网址不正确,它在任何其他测试的浏览器中根本不加载。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

  

无法识别的Content-Security-Policy指令'frame-ancestors'

这是浏览器级别的错误,您无法解决此问题。您使用的是Safari 9或更早版本吗? Safari仅从Safari 10开始支持frame-ancestors。这个错误也只是意味着浏览器忽略了一个无效的指令,它不知道该怎么做。它不应该对您的网站产生负面影响,超出正常情况下该指令不存在的情况。并非需要对所有控制台错误采取行动。

使用内容安全策略等内容时,某些旧版浏览器根本不支持所有功能。由于渐进增强的概念,您仍应实施它们。

请注意,对于标准支持,特别是旧版本,Safari基本上是新IE。不要指望出现边缘支持,但不要因为它而害怕实施新功能。与IE safari不同的是,这些缺失的功能并不像过去那样彻底打破网站。它不仅仅是Safari,Firefox有时会在Chrome之前获取等等。