同源策略:了解拒绝读取

Same-Origin Policy: Understanding Deny Read

This MSDN article 说明 same-origin policy.

不允许读取

具体来说,它说:

Webpage from Origin A:

  • May include (execute) a frame pointed at a HTML page from “B”

  • Must not be permitted to get the inner HTML of that frame

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

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

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

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