浏览器的同源策略
同源策略解决的问题:CSRF
CSRF(cross-site request forgery) 通过伪装成受信任用户的请求来利用受信任的网站。
如何防止CSRF攻击
防止手段
- CSRF自动防御策略:同源检测(Origin和Referer验证)
- CSRF主动防御措施:Token验证,双重Cookie验证以及配合Samesite Cookie
- 保证页面的幂等性,后端接口不在GET页面做用户操作
CORS(跨域资源共享标准)
CORS 提供了一种设置你的页面可以访问指定的域名下的资源(API)的方法。当然这些域名是你受信任的。从而避免了 CRSF 攻击。CORS 就像是一个过滤器
跨域问题的解决方案
将Vue 编译后的代码放到 Spring-boot 的
resources/static
目录下。前后端使用一个服务CORS
2.1 使用注解
2.2 在配置类中设置CORS(设置全局跨域)
配置跨域问题的注意事项:
不要设置@CrossOrigin(‘*’)。虽然达到跨域访问的问题,但是不能达到CORS的意义。因为这个操作是信任所有域名
同源策略的表现
- DOM层面:限制了不同源的JavaScript脚本对当前DOM对象读写操作
- 数据层面:限制不同源的站点读取当前站点的Cookie,IndexDB,LocalStorage等数据
- 网络层面:限制通过XMLHttpRequest等方式将站点的数据发送给不同源的站点