我们所说的解决跨域问题, 到底是在解决什么问题
2018-01-24 本文已影响0人
Bolt
跨域, 就是跨越两非同源的域名去做一些事情. 它本身不是问题, 是不需要解决的.
所谓同源是指,域名,协议,端口相同。
1
我们要解决的实际上是跨域带来的安全问题. 那么它会造成什么安全问题呢?
[... 稍后补全]
我在这里举一个小例子:
你家开了个植物园, 邀请客人来访问并品尝水果. 可是呢, 隔壁有家动物园, 你会允许隔壁家的猴子来你的植物园摘水果, 带过去给他家的客人吃吗?
[原创]
如何避免这些? 浏览器已经在告诉我们了: 同源策略.
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
1
我们平时所说的解决跨域方案, jsonp / cors 它们解决这些安全问题了吗?
没有, 他们解决掉了(绕过了) "浏览器的安全策略".
所以, 我们平时所说的解决跨域方案, 实际上是为了实现跨域的方案.
那么我们为什么要去跨域呢?
- 前后端分离?
总结一下, 博主认为, 能不跨域就不要去跨域才是正道.
真正的解决跨域问题, 就是去避免跨域, 也就是使用反向代理, 让他们在同一个域下.