【问题标题】:Same-Origin Policy: Understanding Deny Read同源策略:了解拒绝读取
【发布时间】:2018-12-10 19:24:10
【问题描述】:

This MSDN article 解释说same-origin policy 不允许读取。

具体来说:

来自 Origin A 的网页:

  • 可能包含(执行)从“B”指向 HTML 页面的框架

  • 必须不允许获取该框架的内部 HTML

如何在不访问内容的情况下“包含(执行)”另一个 html 文件?

在这种情况下,“包含(执行)”是什么意思?

【问题讨论】:

  • 人(或狗)看着加载帧的渲染结果可以看到内容,但是 Origin A JavaScript 根本无法访问。
  • 这些政策主要是关于控制来自特定来源的 JavaScript 可以对来自另一个来源的内容执行的操作。
  • 是的,攻击站点可以做到这一点(假设银行站点没有使用 X-Frame-Options 标头保护自己),但是它无法获得浏览器将内容呈现给用户的屏幕。如果你想出办法做到这一点,你就发现了浏览器中的一个重大安全漏洞。
  • 而 CSRF 基本上就是您描述的情况,但是使用 XHR。攻击者试图“搭载”现有会话,因此银行必须要求某种令牌(由于 SOP)攻击站点无法获得。
  • 是的,XSS 属于更广泛的问题类别,不涉及 SOP。

标签: javascript html security same-origin-policy


【解决方案1】:

这是指查看页面的用户可以看到 iframe 的内容,但在框架页面上运行的脚本无法访问框架页面的内容。类似地考虑<img> 标记将向用户显示来自任何来源的图像,但页面中包含<img> 标记的脚本可能无法读取加载图像的内容。

这很重要,因为框架页面来自不同的来源,并且是使用来自该来源的用户 cookie 获取的。假设框架页面是mail.google.com:当然我不希望任何随机网页通过将其加载到 iframe 中来读取我的收件箱的内容。然而,仅仅显示这个页面给我这个碰巧登录到我的邮件服务的用户是无害的。

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 2016-12-17
    • 2021-11-05
    • 2012-08-22
    • 1970-01-01
    • 2012-10-21
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多