`

window.name跨域mark

    博客分类:
  • CORS
 
阅读更多

看到篇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为空文件

 

 

 

分享到:
评论

相关推荐

    window.name解决跨域问题的文档

    window.name 解决跨域问题的文档 window.name 传输技术是 Thomas Frank 发明的,旨在解决 cookie 的一些劣势,例如每个域名 4 x 20 Kb 的限制、数据只能是字符串、设置和获取 cookie 语法的复杂等等。后来,Kris ...

    解决window.showModalDialog跨域返回值

    在JavaScript中,`window.showModalDialog`是一个古老但仍然有用的函数,用于打开一个模态...因此,对于新项目,更推荐使用现代的API,如`window.postMessage`进行跨域通信,或者考虑采用服务器端代理等其他解决方案。

    利用window.name跨域解决方案Demo.rar

    本Demo实现了一个来自不同服务器的前端页面集成方案,页面间通过window窗口关系形成父子页面关系,跨域情况下父子页面间彼此看不见对方的DOM和js对象,无法直接进行数据交互。本方案从父页面到子页面数据传递采用url...

    跨域问题 之 window.name

    标题提到的“跨域问题之window.name”是指在处理跨域通信时,开发者利用`window.name`属性来传递数据的一种策略。这种技术主要应用于iframe之间的通信,因为浏览器的同源策略限制了不同源的页面直接交互,但`window....

    Ext.Ajax.request跨域

    在IT行业中,跨域是Web开发中一个常见的挑战。标题"Ext.Ajax.request跨域"指出我们将探讨如何使用ExtJS库中的Ajax模块进行跨域请求。Ext.Ajax.request是ExtJS提供的一种发起Ajax请求的方式,它允许开发者向服务器...

    javascript跨域总结之window.name实现的跨域数据传输

    在实际应用中,需要注意的是,使用window.name进行跨域数据传输时,需要确保数据传输过程中,iframe的src属性总是指向与应用页面同域的页面,这样才能安全地读取window.name中的数据。 总结而言,window.name是一个...

    javascript使用window.name解决跨域问题第1/2页

    JavaScript中的`window.name`属性是一个独特且强大的工具,尤其在处理跨域通信时。它不受同源策略的限制,可以在不同页面甚至不同域名之间保持其值。这是因为`window.name`的值在页面重载或导航至其他URL时仍然保留...

    pdf.js 跨域版本

    这个"pdf.js 跨域版本"是基于 PDF.js 的 2.9.8 版本进行了一定的修改,其主要特点是去掉了原本的跨域限制,使得在不同域名下可以正常加载和展示 PDF 文件。这对于开发者来说,尤其在处理来自不同源的 PDF 内容时,是...

    window.showModalDialog打开跨域的页面并取到返回值

    主页面用window.showModalDialog的时候,如果直接打开其它系统的页面,这时候别人的页面在window.returnValue=1;这样返回值的时候,主页面是取不到返回值的,原因就是因为跨域了.

    showModalDialog open弹出子窗口操作parent、opener父窗口及跨域处理

    3&gt; IE与FireFox对两个弹出窗口在跨域时的解析也有不同:通过window.dialogArguments操作父窗口时,在IE下不需要指定document.domain而在FireFox下则正好相反需要指定才能生效;采用opener方式操作父窗口时都不需要...

    window.name解决跨域数据传输问题

    原文:http://research.microsoft.com/~helenw/papers/subspace.pdfwindow.name 传输技术,原本是 Thomas Frank 用于解决 cookie 的一些劣势(每个域名 4 x 20 Kb 的限制、数据只能是字符串、设置和获取 cookie 语法...

    js弹窗并返回值(window.open方式)

    这个名称可以用于后续的引用,如`window.name`,或者在`window.open`中重用窗口。 - `features`: 可选参数,一个描述新窗口特性的字符串,比如宽度、高度、位置等。也可以包含像`scrollbars=yes`这样的选项来控制...

    window.open打开新窗口参数设置

    var newWindow = window.open(url, name, features, replace); ``` - **url**:必需参数,字符串类型,表示新窗口中要加载的文档的URL。 - **name**:可选参数,字符串类型,指定新窗口的名字,这个名称可以用来与`...

    【前端-PC】html vue.js 跨域.zip

    【前端-PC】html vue.js 跨域.zip 这个压缩包文件主要涵盖了前端开发中的重要技术:HTML、Vue.js以及跨域问题。这是一份针对个人计算机(PC)平台的前端开发学习资源,其中可能包含详细的教程、示例代码和其他相关...

    javascript 打开页面window.location和window.open的区别.docx

    - **跨域限制**:使用 `window.location` 或 `window.open` 时需要注意同源策略,确保不会违反跨域限制。 #### 七、总结 综上所述,`window.location` 和 `window.open` 在JavaScript中都扮演着重要的角色,但在...

    showModalDialog跨域解决例子

    这样,虽然页面本身跨域了,但是IFrame和父页面间的通信仍可以使用`window.parent`对象进行。 6. **使用Web Worker**:Web Worker允许在后台线程中执行脚本,它们可以跨域加载资源。但`showModalDialog`并不直接...

    HTML5如何用window.postMessage在网页间传递数据

    window.postMessage的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作...

    name-storage:通过 window.name 存储

    nameStoragenameStorage 是类似 sessionStroage 的键值对数据存储工具,但是可以跨域。nameStorage 适用于同一窗口内跨页面数据存储与传递。技术上,nameStorage 使用 window.name 存储数据。数据的生存周期为窗口...

    window.open父子窗口传值问题

    var newWindow = window.open(url, name, features); ``` - `url`: 子窗口要加载的URL。 - `name`: 窗口的名字,可以用于后续引用。 - `features`: 一个字符串,包含新窗口的尺寸、位置和其他特性。 在Tomcat...

Global site tag (gtag.js) - Google Analytics