window.name跨域mark

看到篇window.name讲解跨域的,挺清晰,mark

http://www.codesec.net/view/169705.html

 

其流程很简单:

1.a.html,proxy.html同源,在a.html中动态创建iframe

2.iframe设置src到目标路径b,同时监听load事件

3.b响应有可能只有一句:<script>window.name='???';</script>,主要是设置name值

4.接下来在load事件callback中,设置frame.contentWindow.location=proxy.html

5.那么在proxy.html页面加载完成后,就可以通过iframe.contentWindow.name获取name值了

6.顺便remove iframe吧

 

其原理:

1.iframe虽然切换了不同的src,但是window.name属性在请求路径b的时候通过js设置了,虽然切换到proxy.html,但是proxy.html没有通过js更改window.name,那么window.name不会因为加载不同的src而有所变化

 

2.只有同源策略才可以访问到iframe的contentWindow,所以必须有proxy.html,即使proxy.html为空文件

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值