https://zhuanlan.zhihu.com/p/406353848

跨域和跨站的区别

涉及到 Web 安全,会有一个跨站的概念,跨站和跨域是不同的。

跨域

跨域即 cross-domain,它和同源(same-origin)相对,要求两个 URL 的协议、端口号、域名都一致才能称为同源。

跨站

跨站即 cross-site,它和同站(same-site)相对,对协议和端口号无要求,只要两个 URL 的 eTLD + 1 一致,就能称为同站。那么什么是 eTLD 呢?

eTLD 即 effective top level domain,有效顶级域名,比如 http://juejin.cneTLD.cnhttp://test.orgeTLD.org,而 http://chorer.github.io 则是 github.io(注意不是 .io)。而 eTLD + 1 指的是有效顶级域名 + 二级域名,比如对于 http://juejin.cn 来说就是 juejin.cn,对于 http://test.org 来说就是 test.org

PS: 不过需要注意的是,same-site 实际上也分为两种,一种是上面定义的协议松散型 same-site,即 scheme-less same-site,在判断是否同站时并不需要考虑协议;另一种则是协议严格型 same-site,即 schemeful same-site,要求协议必须一致才能认定为是同站。

By can

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注