【问题标题】:Understanding HTTP header X-Frame-Options了解 HTTP 标头 X-Frame-Options
【发布时间】:2012-09-29 02:22:33
【问题描述】:

关于 X-Frame-Options (https://developer.mozilla.org/en-US/docs/The_X-FRAME-OPTIONS_response_header),我很难解析文档所说的内容和所看到的内容。我的理解是,当页面返回 SAMEORIGIN 时,如果具有 IFRAME 的页面来自同一个域,浏览器只会加载框架的内容。

我有三台机器。当我登录到 SERVER-A 时,我导航到托管在 SERVER-A 上的页面。它包含一个从 SERVER-B 加载页面的 IFrame,但它位于不同的域中。这一切都有效...但是当我转到 SERVER-C 并浏览到同一页面(由 SERVER-A 提供)时,它不会加载。查看 IE 调试工具,对该 IFramed 页面的请求显示为中止状态。

想法?

【问题讨论】:

    标签: http header


    【解决方案1】:

    这正如您对服务器 C 所期望的那样工作 - 您已声明 iFrame 不应加载到 X-Frame-Options 中来自不同域的页面中,但事实并非如此。此安全策略不适用于从 localhost 加载的页面,这听起来就像您在服务器 A 上时发生的情况一样,类似于 this situation

    您尚未说明您已将 X-Frame-Options 应用于哪些页面:重要的是它位于 iFrame 中的页面上(即在您的设置中的服务器 B 上)。我不认为将标头应用于服务器 A 会有所作为。

    【讨论】:

    • 我没有指定,你是对的。 SERVER-A 提供的页面有一个 URL (URL-A),而 SERVER-B 提供的页面来自 URL-B。 URL-B 生成的页面是唯一设置了 X-Frame-Options 的页面。嗯...即使您的 localhost 评论确实来自不同的域,它们是否适用?
    • 是的 - 看起来您的测试证明 IE(至少对于您的安全设置)不会将这些安全约束应用于从 localhost 加载的页面中的 iframe。如果服务器 A 有一个外部地址,我希望在您通过该地址访问时应用约束,无论请求的来源如何。
    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2013-11-16
    • 2013-12-16
    • 2019-03-15
    • 2017-02-09
    相关资源
    最近更新 更多