跨域CORS

如果URL上未标明端口,那么http默认就是80端口,https默认是443端口

同源策略是指在协议、域名、端口一致的情况下就属于同源

在页面对应的地址不同源的情况下,那么浏览器就会判定为跨域,就会导致如下的问题
1、Ajax请求不能正常发送
2、无法获取DOM元素进行操作
3、无法读取cookie、LocalStorage和IndexDB

浏览器为什么要设置跨域

  跨域只会出现在浏览器端,因为浏览器的形态是很开放的,所以我们就需要对他进行对应的限制
  其次,同源策略主要是为了保证用户信息的安全,可以分为两种:Ajax同源策略和DOM同源策略
  Ajax同源策略主要是使得不同源的页面不能获取Cookie并且不能发起Ajax请求,这样在一定程度上就防止了CSRF攻击
  DOM同源策略也一样,它限制了不同源页面不能获取DOM,这样就可以防止一些恶意网站在自己的网站中利用iframe嵌入正规的网站并迷惑用户,一次来窃取用户的信息

跨域的解决方式

  1、使用代理(proxy)     
  2、设置CORS
  3、JSONP
  4、...

JSONP

  利用script标签没有跨域限制的漏洞,网页可以得到从其他源动态产生的JSON数据,JSONP请求一定需要对方对方的服务器做支持才可以
  优缺点:
        1、(优点)Ajax和JSONP都是客户端朝服务端发送请求,从而获取数据的方式,但是Ajax属于同源策略,而JSONP属于非同源策略。
        2、(优点)兼容性好,能解决主流浏览器跨域访问的问题
        3、(缺点)仅支持GET请求
        4、(缺点)不安全,可能会遭到XXS攻击

CORS

posted @ 2021-01-12 20:47  tulintao  阅读(172)  评论(0编辑  收藏  举报