X-Frame-Options ALLOW-FROM 允许来自特定站点的内容框架,允许所有。

13

我正在使用Rails应用程序从abc.com提供页面。在其中,我在我的应用控制器中设置响应头(通过before_filter处理每个请求),以便仅从特定站点(xyz.com)通过iframe访问它,代码如下:

def set_x_frame_options
  response.headers["X-Frame-Options"] = "ALLOW-FROM http://www.xyz.com"
end

问题是,我不仅可以从xyz上访问abc.com的页面,还可以从任何其他网站上访问。我想限制访问只能在xyz.com上进行。当我在Chrome控制台中检查响应头时,我可以看到X-Frame-Options已经正确传递了。这在所有浏览器中都发生了。 我错过了什么吗?


也许相关:https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-bugs/PkrSeB74a38 .. 那么FF/IE9等呢?也就是说,只有[那个版本的] Chrome 受到影响吗? - user166390
请参考https://dev59.com/SWgv5IYBdhLWcg3wW_l_。问题是:在最新的Firefox和Google Chrome中,似乎发送ALLOW-FROM domain会导致整体操作无效。至少IE8似乎正确地实现了ALLOW-FROM。然而,框架仍然显示内容。 - user166390
在发布这里之前,我确实查看了这两个链接。关于第一个链接,我以为那就是问题所在,但是我在 Firefox 和 Safari 上进行了检查,似乎两者都允许所有的,所以不确定这是否只发生在 Chrome 上。 - Swamy g
可能是重复问题:https://dev59.com/SWgv5IYBdhLWcg3wW_l_。或者引用<a href="https://dev59.com/SWgv5IYBdhLWcg3wW_l_/14893931#14893931">答案</a>:<br/ >在Chrome或Safari中不支持ALLOW-FROM。请参见:https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options。顺便说一句:我认为添加Ruby on rails标签不是一个好主意。这显然不是Ruby on rails失败了。 - user2208684
1个回答

1

对于那些寻找明确答案的人:它在webkit中没有实现,但据报道在Firefox 18.0版本中可以工作。以下Ruby语法在我使用的OSX上的Firefox 20.0中有效:

response.headers["X-Frame-Options"] = "Allow-From http://www.website.com"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接