同源和跨域详解

什么是跨域

前后端跨域

可以理解是浏览器的url栏与服务器之间路由不同造成跨域的。

  1. 服务器与浏览器同域名,不同端口
  2. 服务器与浏览器不同域名,同端口
  3. 服务器与浏览器不同域名
  4. 服务器与浏览器同域名,不同协议
  5. 服务器与浏览器同域名,不同二级域名

什么是同源

  • 同源指的是: 同域名 同端口 同协议

跨域测试

  1. 在阿里云服务器上用beego起一个后端应用,弄一个test接口,不设置Access-Control-Allow-Origin
  2. 服务器上写一个静态页面,有个按钮点击发送ajax请求test接口
  3. 本地弄一个同样的页面
  4. 本地弄一个代理服务器,转发test至阿里云服务器
  5. 分别进行如下测试:
    • 线上页面在浏览器中发请求到线上服务器
    • 本地页面在浏览器中发请求到线上服务器
    • 修改allow-origin为*,本地页面在浏览器中发请求到线上服务器
    • 不设置allow-origin,本地页面在浏览器中通过代理服务器请求接口
    • 不设置allow-origin,使用postman等工具请求接口

测试结果:除了第二种情况,其他的均能进行跨域请求,结论就是跨域限制仅仅是浏览器的行为,通过代理服务器,或者其他工具发送请求就能轻松绕过。

那么,同源策略是不是没有什么卵用呢?
错,同源策略是web安全的基石,当然很重要了

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×