美文网首页
由同源政策,到跨域解决方式等

由同源政策,到跨域解决方式等

作者: 石头_e3d8 | 来源:发表于2019-07-14 22:25 被阅读0次

1.浏览器安全的基石是“同源政策”,协议相同,域名相同和端口相同时才满足同源。

2.同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

3.非同源,共有三种行为受到限制:

*无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB。

*无法接触非同源网页的 DOM。

*可以向非同源地址发送 AJAX 请求,但浏览器会拒绝接受响应。

4.如果两个网页一级域名相同,只是次级域名不同,浏览器允许通过设置`document.domain`共享 Cookie,必须把需要共享的次级域名都设置document.domain。

5.什么是跨域?

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。

广义的跨域:

1、资源跳转:A链接、重定向、form提交表单

2、资源嵌入: <link>、<script>、<img>、<iframe>等dom标签,还有样式中background:url()、@font-face()等文件外链

3、脚本请求: js发起的ajax请求、dom和js对象的跨域操作等

其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景:

cors,websocket,postmessage,代理,jsonp等,详见链接:https://github.com/menglei0602/cross-domain.git

备注:

1).如果是协议和端口造成的跨域问题“前台”是无能为力的。

2).在跨域问题上,仅仅是通过“URL 的首部”来识别而不会根据域名对应的 IP 地址是否相同来判断。“URL 的首部”可以理解为“协议, 域名和端口必须匹配”。

3).跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。你可能会疑问明明通过表单的方式可以发起跨域请求,为什么 Ajax 就不会?因为归根结底,跨域是为了阻止用户读取到另一个域名下的内容,Ajax 可以获取响应,浏览器认为这不安全,所以拦截了响应。但是表单并不会获取新的内容,所以可以发起跨域请求。同时也说明了跨域并不能完全阻止 CSRF,因为请求毕竟是发出去了。

4).跨域相关优秀文章:

*https://segmentfault.com/a/1190000012469713

相关文章

  • 由同源政策,到跨域解决方式等

    1.浏览器安全的基石是“同源政策”,协议相同,域名相同和端口相同时才满足同源。 2.同源政策的目的,是为了保证用户...

  • Ajax 跨域解决方案

    在解决Ajax跨域问题之前,我们先一起来看看什么是浏览器的同源策略 一.浏览器同源政策 含义1995年,同源政策由...

  • AJAX

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

  • 前端跨域问题总结

    前端跨域问题的起因是什么—同源政策 1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实...

  • 有关跨域的相关问题和方法

    跨域是什么 同源策略 在讲解什么是跨域之前先要清楚什么是同源策略,“同源政策”(same-origin polic...

  • Flask-cors跨域

    什么是跨域 为什么要考虑跨域问题 同源策略 解决跨域问题 方式一: 使用 JSONP (一种非Ajax技术,需要前...

  • 跨域通信

    一、跨域and同源政策 1.跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对ja...

  • 前端必备HTTP技能之JSONP技术详解

    JSONP(JSON with Padding)是一种JSON扩展,用来解决由浏览器同源策略引起跨域限制。跨域限制...

  • 使用Koa亲自体验跨域

    跨域问题的存在是因为浏览器都遵循同源策略 同源策略 1995年,同源政策由 Netscape 公司引入浏览器。目前...

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

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

网友评论

      本文标题:由同源政策,到跨域解决方式等

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