`
yysct2005
  • 浏览: 88192 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

document.domain

    博客分类:
  • html
阅读更多

document.domain

用来得到当前网页的域名。
比如在地址栏里输入:

javascript:alert(document.domain); //www.forjj.com

我们也可以给document.domain属性赋值,不过是有限制的,你只能赋成当前的域名或者基础域名。
比如:
javascript:alert(document.domain = "forjj.com"); //forjj.com
javascript:alert(document.domain = "www.forjj.com"); //www.forjj.com

上面的赋值都是成功的,因为www.forjj.com是当前的域名,而forjj.com是基础域名。

但是下面的赋值就会出来“参数无效”的错误:
javascript:alert(document.domain = "cctv.net"); //参数无效
javascript:alert(document.domain = "ttt.forjj.com"); //参数无效

因为cctv.net与ttt.forjj.com不是当前的域名也不是当前域名的基础域名,所以会有错误出现。
这是为了防止有人恶意修改document.domain来实现跨域偷取数据。


利用document.domain 实现跨域:
前提条件:这两个域名必须属于同一个基础域名!而且所用的协议,端口都要一致,否则无法利用document.domain进行跨域

Javascript出于对安全性的考虑,而禁止两个或者多个不同域的页面进行互相操作。
相同域的页面在相互操作的时候不会有任何问题。

比如在:aaa.com的一个网页(a.html)里面 利用iframe引入了一个bbb.com里的一个网页(b.html)。
这时在a.html里面可以看到b.html里的内容,但是却不能利用javascript来操作它。因为这两个页面属于不同的域,在操作之前,js会检测两个页面的域是否相等,如果相等,就允许其操作,如果不相等,就会拒绝操作。
这里不可能把a.html与b.html利用JS改成同一个域的。因为它们的基础域名不相等。(强制用JS将它们改成相等的域的话会报跟上面一样的“参数无效错误。”)

所以如果在a.html里引入aaa.com里的另一个网页,是不会有这个问题的,因为域相等。

有另一种情况,两个子域名:
aaa.xxx.com
bbb.xxx.com

aaa里的一个网页(a.html)引入了bbb 里的一个网页(b.html),
这时a.html里同样是不能操作b.html里面的内容的。
因为document.domain不一样,一个是aaa.xxx.com,另一个是bbb.xxx.com。

这时我们就可以通过Javascript,将两个页面的domain改成一样的,
需要在a.html里与b.html里都加入:

document.domain = "xxx.com";
这样这两个页面就可以互相操作了。也就是实现了同一基础域名之间的“跨域”。

分享到:
评论

相关推荐

    js设置document.domain实现跨域的注意点分析

    本文实例分析了js设置document.domain实现跨域的注意点。分享给大家供大家参考。具体分析如下: document.domain 用来得到当前网页的域名。 比如在地址栏里输入: 代码如下:[removed]alert(document.domain&#41...

    PHP ajax跨子域的解决方案之document.domain+iframe实例分析

    对于主域相同,子域不同,我们可以设置相同的document.domain来欺骗浏览器,达到跨子域的效果。 例如:我们有两个域名:www.a.com 和 img.a.com 在www.a.com下有a.html 在img.a.com下有img.json和img.html这两个文件...

    Web前端黑客技术揭秘(Web2Hack.org)_(i)7.6.5 跨子域:document.domain技巧1

    第 7 章 漏洞利用207访问 http://www.evil.com/proxy/attack.htm// 设置域为 WebKit 认为的顶级域/*注入框架*

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

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

    ssh开发步骤

    本文档详细的讲述了如何使用ssh技术开发javaweb工程,对于初学者而言是十分合适的,有很详细的开发步骤。

    Ajax跨域传输参数

    可以将book.aa.com用iframe添加到 www.aa.com的某个页面下,在www.aa.com和iframe里面都加上document.domain = "aa.com",这样就可以统一域了,可以实现跨域访问。就和平时同一个域中镶嵌iframe一样,直接调用里面的...

    cross-origin::cyclone: 跨域demo。CORS、JSONP、postMessage、websocket、document.domain、window.name、iframe等示例

    3000端口: 为前端界面,前端静态资源放在3000端口的服务器上3001端口: 为后端接口服务器目录Set Up运行环境node.js 全局安装npm 全局安装运行步骤git clone git@github.com:FatDong1/cross-domaincross-domain目录下...

    JavaScript权威指南

    Document Information Properties Section 14.5. Forms Section 14.6. Images Section 14.7. Links Section 14.8. Anchors Section 14.9. Applets Section 14.10. Embedded Data Chapter 15. Forms...

    javaweb 开发解决跨域问题的N种方法

    前端异常:NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN: Illegal document.domain value 解决跨域问题 设置document.domain一级域名相同的情况之下) document.domain= html标签中src属性,只支持get请求,允许跨域 jsonp格式...

    创宇技能表v3.1.7z

    document.domain);[removed] 第三关: http://xss-quiz.int21h.jp/stage-3.php?sid=93de7707279b3a5ae4ce419bfc7c0b1f380a20f6 提示:The input in text box is properly escaped 但是输入点就不仅这处。 ...

    Asp.net FCKEditor 2.6.3 上传文件没有权限解决方法

    打开解决方案, 找到 FileBrowser/FileWorkerBase.cs 文件 代码如下:Response.Write( @”(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e) {};d=d....

    kindeditor-4.1.11js整合

    Bugfix: [IE6] 当前页面设置了document.domain,销毁编辑器会报错。 Bugfix: 行首全角空格被过滤。 Bugfix: 修复多语言包的一些小错误。 Bugfix: [IE11] 有些设备报错不能显示,对象不支持attachEvent属性或方法。 ...

    SSM整合KindEditor-4.11编辑器

    Bugfix: [IE6] 当前页面设置了document.domain,销毁编辑器会报错。 Bugfix: 行首全角空格被过滤。 Bugfix: 修复多语言包的一些小错误。 Bugfix: [IE11] 有些设备报错不能显示,对象不支持attachEvent属性或方法。 ...

    JavaScript中document.referrer的用法详解

    在JavaScript中,document对象有很多属性,其中有3个与对网页的请求有关的属性,它们分别是URL、domain和referrer。 URL属性包含页面完整的URL,domain属性中只包含页面的域名,而referrer属性中则保存着链接到当前...

    「JavaScript」JS四种跨域方式详解

    二、通过修改document.domain来跨子域 浏览器都有一个同源策略,其限制之一就是第一种方法中我们说的不能通过ajax的方法去请求不同源中的文档。 它的第二个限制是浏览器中不同域的框架之间是不能进行js的交互操作的...

    JS常用知识点整理

    将页面的document.domain设置为相同的值,页面间可以互相访问对方的JavaScript对象。 注意: 不能将值设置为URL中不包含的域; 松散的域名不能再设置为紧绷的域名。 3.图像Ping var img=new Image();

    AJAXCDR:利用 Flash 完美解决 JavaScript 和 AJAX 跨域 HTTP POST/GET 表单请求

     本域和子域的交互,可以通过iframe设置两个域名document.domain = "s135.com",实现统一s135.com域下的跨域访问。  本域和其他域的交互,可以通过iframe、代理、JS创建动态脚本等几种方法来实现,这里有篇文章对...

Global site tag (gtag.js) - Google Analytics