猥琐流之webkit神跨域

Sogili (.) 长短短 (.) | 2013-01-16 00:33

这个技巧再之前的文章中有过一些描述,这里主要进行详细的说明.利用document.domain进行跨域大家再熟悉不过了,腾讯所有的主业务基本上都用了这个玩意跨子域.

webkit的document.domain设置机制科普:

    document.domain设置时只能往域名的上一级进行设置,例如www.mmme.me可以设置成mmme.me,但不能反过来.webkit的document.domain在设置时与其它浏览器有些差异.它并没有检测域,只是简单以点(".")进行分隔.也就是说这里我们可以设置成me,当主机名后面有个点的时候我们便可以设置为空(""").

应用场景:

1.长度受限的情况.

2.document.domain可控:

document.domain="[here]";

亲情跨:

同一后缀范围内的域名,双方对将doucmne.domain指定为后缀时即视为亲情域,亲情域之间可享受无限制跨域的优惠. ".com.cn"这样的域名也属于".cn"系列,所以可以与".cn"的域名成为亲情域.

document.domain="com"

document.domain="net"

document.domain="cn"


优点:通杀效果好.

缺点:域名必须在同一后缀范围内.

全球跨:

全球跨实现客户在全球范围内同主域、同后缀、完全不同的域名之间跨域的统一,不收取任何跨域费.需要注意的是使用全球跨的时候必须在域名后面加个点("."),即 wooyun.org=>wooyun.org. 这样子.

document.domain=""

优点:短,不受域名限制,可以使用任意域名进行跨域操作.

缺点:一些服务器区分加点和没有点的主机.因为是不同的host了,所以可能获取不到用户登录cookie.