跳转至

Web Net

同源策略

什么是同源策略及其限制内容?

同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。所谓同源是指“协议+域名+端口”三者相同,即便两个不同的域名指向同一个ip地址,也非同源。

同源策略限制内容有:

  • Cookie、LocalStorage、IndexedDB 等存储性内容
  • DOM 节点
  • AJAX 请求发送后,结果被浏览器拦截了

但是有三个标签是允许跨域加载资源:

<img src='xxx'><link href='xxx'><script src='xxx'>

跨域

跨域资源共享 CORS 详解 - 阮一峰的网络日志

跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。

跨域解决方案

  • jsonp JSONP只支持GET请求,JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。
  • cors 支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案
  • postMessage
  • websocket
  • Node中间件代理(两次跨域) 不管是Node中间件代理还是nginx反向代理,主要是通过同源策略对服务器不加限制
  • nginx反向代理
  • window.name + iframe
  • location.hash + iframe
  • document.domain + iframe
  • 日常工作中,用得比较多的跨域方案是cors和nginx反向代理
  • jsonp
    1. JSONP原理 利用