识别rails中不友好的iframe站点—;即使标题中缺少x-frame-options

识别rails中不友好的iframe站点—;即使标题中缺少x-frame-options,iframe,x-frame-options,Iframe,X Frame Options,背景: 我正在开发一个rails应用程序,它将通过iframe打开应用程序内部的文章(在我的应用程序顶部有一个导航栏,有点像StumbleUpon)。但我注意到一些发布文章的网站(例如:pitchfork.com、vox.com、theverge.com)通过将X-Frame-Options设置为SAMEORIGIN或DENY来防止自己被加载到iframe中 我目前的计划是查看链接的标题,并检查它是否包含X-Frame-Options。如果是这样,我会将其设置为放弃iframe,并在新选项卡中打

背景:

我正在开发一个rails应用程序,它将通过iframe打开应用程序内部的文章(在我的应用程序顶部有一个导航栏,有点像StumbleUpon)。但我注意到一些发布文章的网站(例如:pitchfork.com、vox.com、theverge.com)通过将X-Frame-Options设置为SAMEORIGIN或DENY来防止自己被加载到iframe中

我目前的计划是查看链接的标题,并检查它是否包含X-Frame-Options。如果是这样,我会将其设置为放弃iframe,并在新选项卡中打开原始站点

此方法似乎适用于某些网站(如pitchfork.com),因为当我从pitchfork.com请求标头时,我会得到以下结果:

server: nginx/1.4.6 (Ubuntu)
content-type: text/html; charset=utf-8
x-frame-options: SAMEORIGIN
date: Wed, 27 Jan 2016 17:47:54 GMT
x-varnish: 912263733 912263044
age: 8
via: 1.1 varnish
connection: keep-alive
问题:

对于一些网站(比如vox.com),当我在iframe中加载它们时,x-frame-options会阻止网站在iframe中加载。但是当我检查标题时,x-frame-options却找不到了!我得到的只是:

server: nginx/1.6.2
date: Wed, 27 Jan 2016 17:26:15 GMT
content-type: text/html
content-length: 172
connection: close
vox.com是如何做到这一点的?为了进一步澄清,我尝试使用在另一个stackoverflow帖子中发现的方法,但它也未能正确检测到vox.com正在通过x-frame-options阻止iFrame

1) Vox是否能够在标题以外的其他位置设置x帧选项?如果是后者,我如何检测和发现


2) 您推荐的其他检测iframe不友好站点的替代策略,以便我可以将它们设置为在新选项卡中打开?

查看Chrome控制台中记录的网络流量。在您的应用程序中,您正在查看HTTP
301永久移动
响应的标题,然后将您重定向到确实返回
X-Frame-Options:SAMEORIGIN
标题的位置


其他网站可能会使用其他方法(如更新的或JavaScript代码)来防止iframe嵌入。但是在vox.com的例子中,你只是在查看错误响应的标题。

太好了,在Chrome控制台的网络流量部分可以看到带有X-Frame-Options的标题。我想我现在的问题是,rails在请求网站的标题时无法检测到这一点-不确定正在进行什么重定向,因为即使在我请求主页的标题时也会发生这种情况:www.vox.com因为这现在更像是rails的问题,我将提出一个新问题。非常感谢。