浏览器跨域

浏览器跨域

1.什么是跨域
跨域:字面上看就是浏览器访问了不同的域(不同源),
不同源的两个URL之间互相访问就属于跨域了.

跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就被当作是跨域.

2.判断是否跨域
同源: 两个URL的协议、域名和端口相同,则表示他们同源。
同源策略:是浏览器上为安全性考虑实施的非常重要的安全策略。

例如:下列网站和http://www.example.com/detail.html
是否同源的对比

http://api.example.com/detail.html 不同源 域名不同
https://www.example.com/detail.html 不同源 协议不同
http://www.example.com:8080/detail.html 不同源 端口不同
http://api.example.com:8080/detail.html 不同源 域名、端口不同
https://api.example.com/detail.html 不同源 协议、域名不同
https://www.example.com:8080/detail.html 不同源 端口、协议不同
http://www.example.com/detail/index.html 同源 只是目录不同

同源策略解析:
(1)浏览器的同源策略,限制了来自不同源的”document”或脚本,对当前”document”读取或设置某些属性。 从一个域上加载的脚本不允许访问另外一个域的文档属性。
举个例子:
比如一个恶意网站的页面通过iframe嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。
(2)同源策略是浏览器在接收加载资源之前对其来源进行了检查,然后限制加载;
(3)同源策略使浏览器允许跨域写,而不允许跨域读,写就是上行,发送请求,读就是下行,接受响应;
(4)在浏览器中,script、img、iframe、link等标签都可以加载跨域资源,而不受同源限制,但浏览器限制了JavaScript的权限使其不能读、写加载的内容。

猜你喜欢

转载自blog.csdn.net/qq_22881435/article/details/86689722