AJ *_*haw 6 php apache security iframe facebook
我有一个我作为FBML应用程序构建的facebook应用程序.最近我注意到FBML已被弃用,Facebook现在只推荐使用iframe应用程序.我最初避免的东西,因为我的理解是iframe不是有效的xhtml代码,当时我试图为所有内容编写100%经过验证的代码.
但是我也不喜欢构建不受支持的应用程序,所以我开始使用iframe方法显示更改我的应用程序以使用完全呈现的html页面.
当我在自己的窗口中显示它们时,我的页面会完美呈现,但是当在Facebook提供的帧内渲染时,它们在Safari中完全空白.起初我很难过,无法弄清楚为什么没有渲染,直到使用Internet Explorer的朋友告诉我他看到以下错误:
为帮助保护您在本网站上输入的信息的安全性,此内容的发布者不允许其在框架中显示.
所以我开始谷歌搜索这个错误,并在困惑的人们试图让他们的框架代码工作之间找到大量的论坛讨论,并发现这是一个错误,在2009年IE8推出时发生在一夜之间.微软网站上的一点点挖掘再次表明它是微软为防止点击而发明的安全功能.
显而易见的原因是服务器发送X-Frame-Options标题,Firefox和Internet Explorer的响应是显示有关安全性和帧的错误消息,而Chrome和Safari等Webkit浏览器的响应是一个无益的空白框架.我拥有运行apache服务器的硬件,我写了所有的html,我当然从未明确发送过X-Frame-Options标头,所以我必须假设我的php安装默认在它提供的所有页面上发送这个标头作为一个全面的安全增强(或者是Apache正在做的).
显然,既然我知道是什么导致它,我可以弄清楚是谁发送标题并停止它,但我的问题是关于最佳实践:点击预防显然是一个值得的原因,并且因为我的服务器链的某些部分认为重要的是发送这个标题而不要求,显然有人认为这是一个好主意.然而,Facebook应用程序,根据设计,从iframe中的另一个网站加载内容,所以我很惊讶在互联网上我很少或根本没有谈论这个.是否有另一种解决方法,或者仅仅是针对打算从iframe中查看的页面不应该打开的情况?
此外,如果摆脱标题是正确的方法,有没有人知道为什么它被发送和在哪里关闭它?我正在使用apache和php的默认安装运行Snow Leopard Server.
在 Apache 配置文件中搜索该选项
Run Code Online (Sandbox Code Playgroud)$sudo grep -ir 'x-frame-options' /etc/apache2
| 归档时间: |
|
| 查看次数: |
850 次 |
| 最近记录: |