美文网首页
同源策略和跨域解决

同源策略和跨域解决

作者: caoxingyu | 来源:发表于2020-04-30 16:29 被阅读0次

同源策略

1、定义

所谓"同源"指的是"三个相同"

2、目的

  同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。
  设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。如果其他网站可以读取A网站的 Cookie,会发生什么?
  很显然,如果 Cookie 包含隐私(比如存款总额),这些信息就会泄漏。更可怕的是,Cookie 往往用来保存用户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。
  由此可见,"同源政策"是必需的,否则 Cookie 可以共享,互联网就毫无安全可言了。

3、限制范围

随着互联网的发展,"同源政策"越来越严格。目前,如果非同源,共有三种行为受到限制。

  1. Cookie、LocalStorage 和 IndexDB 无法读取。
  2. DOM 无法获得。
  3. AJAX 请求不能发送。

下面重点介绍解决AJAX 请求不能发送的方法

  1. 服务器代理(浏览器请求同源服务器,再由后者请求外部服务,比如常用的nginx代理)
  2. JSONP
      JSONP是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,老式浏览器全部支持,服务器改造非常小。
      它的原理是html中的src和href属性不受同源策略限制。它的基本思想是,网页通过添加一个<;script>元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请求后,将数据放在一个指定名字的回调函数里传回来。JSONP只能发GET请求。
  3. cors
    CORS是跨域资源分享(Cross-Origin Resource Sharing)的缩写。它是W3C标准,是跨域AJAX请求的根本解决方法。相比JSONP只能发GET请求,CORS允许任何类型的请求。
    详情参考阮一峰的博客

相关文章

  • H5跨域访问

    跨域访问是源于浏览器的同源策略而引申出来的概念 1、先了解什么是同源策略和跨域访问 同源策略、跨域解决方案 - R...

  • H5 知识点 - 收藏集 - 掘金

    跨域解决方案总结 - 前端 - 掘金为什么需要跨域? 就得先知道同源策略. 同源策略 同源策略是为了保证数据的安全...

  • 面试官:那有没遇到跨域问题,如何解决跨域?

    面试官:有没遇到跨域问题,如何解决跨域? 一、同源策略 谈到跨域问题,要先谈浏览器的同源策略。 二、解决方案 1、...

  • js常见跨域解决方案

    参考:前端常见跨域解决方案(全) 跨域,什么是“域”? 这里就要先说说同源策略了。所谓同源是指"协议+域名+端口"...

  • AJAX

    题目 手写一个ajax 跨域的常用实现方式 知识点 XMLHttpRequest 状态码 跨域:同源策略,跨域解决...

  • 同源策略与跨域

    跨域就是违背了同源策略解决跨域的方法有:jsonp,cors和服务器代理

  • 通过script标签实现跨域

    跨域 什么是跨域? 跨域问题是由于javascript语言安全限制中的同源策略造成的。同源策略是由Netscape...

  • Spring Boot中通过CORS解决跨域问题

    Spring Boot中通过CORS解决跨域问题 同源策略 同源策略是由Netscape提出的一个著名的安全策略,...

  • 跨域

    1,什么是同源? 2,什么是同源策略? 3,不受同源策略限制的 4,解决跨域的几种方式: 1,Ajax的jsonp...

  • 前端基础(问答23)

    keywords: 同源策略、跨域、jsonp。 什么是同源策略(same origin policy) 同源:协...

网友评论

      本文标题:同源策略和跨域解决

      本文链接:https://www.haomeiwen.com/subject/iuttghtx.html