LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 132|回复: 0

跨窗口通信

[复制链接]
发表于 2024-1-19 23:34:01 | 显示全部楼层 |阅读模式
“同源(Same Origin)”策略限制了窗口(window)和 frame 之间的相互访问。

这个想法出于这样的考虑,如果一个用户有两个打开的页面:一个来自 john-smith.com,另一个是 gmail.com,那么用户将不希望 john-smith.com 的脚本可以读取 gmail.com 中的邮件。所以,“同源”策略的目的是保护用户免遭信息盗窃。

同源
如果两个 URL 具有相同的协议,域和端口,则称它们是“同源”的。

以下的几个 URL 都是同源的:

http://site.com
http://site.com/
http://site.com/my/page.html
但是下面这几个不是:

http://www.site.com(另一个域:www. 影响)
http://site.org(另一个域:.org 影响)
https://site.com(另一个协议:https)
http://site.com:8080(另一个端口:8080)
“同源”策略规定:

如果我们有对另外一个窗口(例如,一个使用 window.open 创建的弹窗,或者一个窗口中的 iframe)的引用,并且该窗口是同源的,那么我们就具有对该窗口的全部访问权限。
否则,如果该窗口不是同源的,那么我们就无法访问该窗口中的内容:变量,文档,任何东西。唯一的例外是 location:我们可以修改它(进而重定向用户)。但是我们无法读取 location(因此,我们无法看到用户当前所处的位置,也就不会泄漏任何信息)。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表