一文带你详解浏览器跨域!

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 

一、什么是跨域?

JavaScript出于安全方面的考虑做的同源策略的限制,不允许跨域访问其他资源。通常跨域请求成功后,浏览器会拒绝响应服务器端返回的结果。

1.出于哪些方面的安全考虑?

同源政策的目的是为了防止恶意网站窃取用户数据信息冒充用户做一些操作。同源限制只是提高攻击成本。如果没有JavaScript同源限制:

(1)CSRF攻击

一文带你详解浏览器跨域!_第1张图片

(2)XSS攻击

一文带你详解浏览器跨域!_第2张图片

2.什么是同源?

域名、协议、端口均相同。举例来说,http://www.example.com/dir/page.html这个网址,协议是http://,域名是www.example.com,端口是80(默认端口可以省略)

3.做了哪些限制?

(1)Window对象之间的跨源通信:无法读取Cookie(cookie是只会区分域名,不会区分端口的,所以在处理cookie 的时候必须首先你自己为cookie加上端口的标示以便区分。这里要感谢评论区指正的道友)、LocalStorage 、IndexDB 和获取DOM,但通过以下标签可以跨域访问资源: