浏览器为什么要跨域?如果是因为安全的话那小程序或者其他的为什么没有跨域?
因为Web环境较为开放,浏览器跨域也是为了抵御XSS攻击,而小程序对于敏感的接口都是由后端去请求微信官方的接口,由此可见小程序的安全是由微信官方来做的 CORS跨域的原理
浏览器在每次发起请求的时候都会带上Origin字段,让浏览器与Access-Control-Allow-Origin进行对比,如果能够匹配上,那就可以正常请求数据 CORS又分为简单请求和非简单请求,非简单请求每次都会发送一个预检请求(预检请求的方式是OPTIONS方法,它会有一个Max-Age的字段,在有效时间内不会再次发送预检请求)判断访问权限是否还在有效期内 CORS预请求OPTIONS就一定是安全的吗?
同源策略只会防止不同来源的读取,依然要注意CSRF攻击 解决跨域的方法
1.jsonp跨域
2.cors跨域
3.websocket跨域
4.nginx代理
|