【翻译】window.name Transport(2)

Benefits

window.name比其他的跨域传输技术更有优势:

  • 它比JSONP安全。可以说它和其他基于安全传输的frame(比如fragment identifier messaging ,Subspace)一样安全。(I)Frames 也有他们自己的安全问题,因为frame可以改变其他frame的location,但这是个非常不同的安全溢出,一般来讲,这并不严重。
  • 首先它比FIM快的多,因为它无需处理小包量的fragment identifier,也没有那么多针对IE的连锁反应。其次,它也比Subspace快。Subspac需要两个iframe,并且在请求中加载两个本 地HTML页面。window.name仅仅需要一个iframe和一个本地页面。
  • 它比Subspace和FIM更加安全和简单。FIM有点复杂,而Subspace相当复杂。Subspace还有一系列的额外约束以及安装需求,比如预先声明所有的目标主机和拥有针对若干不同特殊主机的 DNS 入口。window.name 则简单容且易于使用。
  • 它并不需要插件(比如Flash)或其他替代技术(比如Java)。

How does it work? windowname.png

  你可以使用windowNam模块而无需理解它是如何工作的。但既然这是使你远离糟糕web服务的工具,你当然想知道它是如何提供保护的。name是浏览器中window对象的一个属性,即使浏览器加载了新的页面,name的值依然保持不变。当在iframe中加载一个资源时,目标页面将会设置其name属性,这个name属性的值可以通过访问web服务来获取。注意,name属性只可以被同一个domain下的frame所访问。也就是说,当远程web服务页面被加载后,为了访问返回的name值,Dojo必须操纵frame返回原先的domain。当dojo在取得name的时候,这项机制也能够避免其他的frame访问name属性。一旦name的属性值被获取,这个frame就可以被销毁了。

因为name属性被置于最顶层,所以它显得并不安全。任何name属性中的信息都可以被随后的页面所访问。然而,windowName模块总是在iframe中加载目标资源,当name中的数据被获取后,iframe立刻被销毁,或者你可以浏览一个新的页面使得其他所有的页面都没有访问window.name的权限。

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值