同源策略、跨域、Same-origin、Cross-origin

同源:若两资源的 URL 具有相同的 (protocolporthost) ,则这两个资源同源

浏览器同源策略:是浏览器限制不同源之间进行数据交换而制定的安全规则。这里数据包括 Dom,Cookie、LocalStorage 和 IndexDB 等

跨域网络访问:获取其它源的数据的请求,是跨域网络访问

同源策略如下:

  1. 允许跨域写操作(Cross-origin writes),例如链接 (links),重定向以及表单提交
  2. 允许跨域资源嵌入(Cross-origin embedding),支持标签 script、link、img、video、audio、object、embed、applet、@font-face、iframe。
  3. 不允许跨域读操作(Cross-origin reads),不允许操作其它源的 dom,不允许主动读取其它源的资源,ajax 请求带 cookie 可以发出去,即使服务器端返回了正确的结果,浏览器也会拒绝处理服务器端返回的数据。 

跨域资源共享:CORS(Cross-origin resource sharing)是一个 W3C 标准,定义了在必须访问跨域资源时,浏览器与服务器应该如何沟通,所有浏览器都支持该功能,IE 浏览器不能低于 IE10。

结论:浏览器制定同源策略,是因为一个浏览器可以打开 N 个网站的网页,而浏览器只有一个,浏览器要尽可能防止它自己误操作,或者它自己的操作被恶意客户误导,因为它是客户代理,要为客户负责。因为浏览器制定了同源策略,所以有跨域问题。所以不同浏览器的同源策略是不同的。本贴目的是澄清概念,跨域方法可自行上网搜索。

服务端限制:如果服务端认为从其它源过来的请求是不安全的,需要增强校验

posted on 2020-07-14 02:24  一直小飞猫  阅读(627)  评论(0编辑  收藏  举报

导航