Web Net¶
同源策略¶
什么是同源策略及其限制内容?
同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。所谓同源是指“协议+域名+端口”三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
同源策略限制内容有:
- Cookie、LocalStorage、IndexedDB 等存储性内容
- DOM 节点
- AJAX 请求发送后,结果被浏览器拦截了
但是有三个标签是允许跨域加载资源:
跨域¶
跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。
跨域解决方案
- 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
- JSONP原理 利用