【发布时间】:2016-01-15 07:27:53
【问题描述】:
我正在尝试实现一个可嵌入的小部件,其功能类似于 Twitter 嵌入式推文。最简单的解决方案虽然可能不是最好的,但似乎是 iframe 或 HTML5 嵌入 - 但两者都被服务器上的 X-Frame-Options 标头阻止。
我在我完全控制的专用服务器上运行 PHP 5.3 和 Apache 2.2。
我试过放在 iframe PHP 文件第一行的第一行:
header_remove("X-Frame-Options");
我已尝试将以下内容添加到 .htaccess:
Header unset X-Frame-Options
我检查了 httpd.conf、vhost .conf 文件,甚至 PHP.INI,并搜索了“x-frame”——两者都没有明显的相关性。
没有 mod_security 或其他插件应该在我看到的这个服务器上注入这个。
无论我做什么,curl 都会验证以下 HTTP 标头:
X-Frame-Options: DENY
是否有一些(可能是奇怪的命名设置)仍然会强制此标头进入?
【问题讨论】:
-
PHP 代码完全是您自己的,还是您使用某种框架库?出于安全原因,框架是否会将此作为其默认行为的一部分?
-
另外,题外话,但请注意 PHP 5.3 已经结束。事实上,即使是 PHP 5.4 现在也已经报废了。您应该考虑升级,尤其是因为您可以完全控制服务器。
-
感谢您的回复 - 站点根目录正在使用 WordPress,但此代码是我自己的,为了简单起见,暂时将其放在 CMS 外部的独立文件中。还有一个可靠的建议:5.3,升级我的生产服务器有点紧张。 :)
-
如果 PHP 代码是独立的并且您检查过 Apache 等,那么我不知道它来自哪里。但是您是否尝试在 PHP 代码中添加
header()行来覆盖它?可能不是理想的解决方案,但试试吧;它可能会起作用。 -
重新 PHP 升级 -- 是的,在升级实时服务器时要小心谨慎。不过,它确实必须不时进行;你真的不能躲在沙子里。管理这样的升级有完善的流程(其中最重要的是确保首先备份所有内容!)。但我建议转到 SO 的姊妹站点 ServerFault 来更详细地讨论这类事情。
标签: php apache x-frame-options