我有一个应用程序 siteA.com,它加载到 siteB.com 内的 iframe 中。
没有警告直接加载 siteA.com 但得到无法识别的内容安全策略指令“frame-ancestors”何时位于 siteB.com 的 iframe 内;这仅适用于 Safari。
所有这些更改均在 siteA.com 中进行
Meta Tag没有运气
<meta http-equiv="Content-Security-Policy" content="frame-ancestors siteB.com">
我应该向 siteA.com 添加哪些标头以允许 Content-Security-Policy 指令框架祖先?
然后我尝试了主要索引.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");
但这甚至会给出错误。
好的一点是,如果框架祖先 url 不正确,它根本不会在任何其他测试的浏览器中加载。
我究竟做错了什么?
无法识别的内容安全策略指令“frame-ancestors”
这是浏览器级别的错误,您无法修复它。您使用的是 Safari 9 或更旧版本吗? Safari 仅支持frame-ancestors
开始于狩猎10 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors#Browser_compatibility。该错误还意味着浏览器忽略了对它来说无效的指令,它不知道如何处理。它不应该对您的网站产生超出该指令不存在时通常会发生的负面影响。并非所有控制台错误都需要采取措施。
当使用内容安全策略等内容时,一些较旧的浏览器根本不会支持所有功能。由于渐进增强的概念,您仍然应该实现它们。
请注意,坦率地说,Safari 基本上是新的 IE,在对标准(尤其是旧版本)的支持方面落后。不要期待前沿的支持,但也不要因此而害怕实现新功能。与 IE 不同的是,safari 确实迎头赶上,而且这些缺失的功能不会像以前那样完全破坏网站。不仅仅是 Safari,Firefox 有时会先于 Chrome 获得一些东西,等等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)