你真的会SpringBoot跨域吗?

Springboot跨域问题之XSS (Cross Site Scripting) 跨站脚本攻击

声明:本文为半科普文,不过多深入研究 欢迎讨论

刚接触前后端分离一定会碰到跨域问题,那什么是跨域呢?

  • 正常前后端交互

  • 跨域问题

一般个人项目会选择的跨域解决方法:

Springboot跨域解决

添加WebCorsConfig跨域类,实现WebMvcConfigurer接口,同时加上@Configuration注解

     registry.addMapping("/**")
                .allowedOrigins("*")    //开放哪些ip、端口、域名的访问权限
                .allowCredentials(true)  //是否允许发送Cookie信息 
                .allowedMethods("GET","POST", "PUT", "DELETE")     //开放哪些Http方法,允许跨域访问
                .allowedHeaders("*")     //允许HTTP请求中的携带哪些Header信息
                .exposedHeaders("*");   //暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)

带来的问题

XSS攻击 ,通过恶意漏洞获取用户权限,进行特定操作。

XSS攻击

xss攻击

为什么会有XSS攻击?

简单的说,"*" 代表的权限太大了,你无法保证用户服务器是否被入侵、数据是否传输安全,这里前端服务器因为审查不严存在反射型XSS漏洞

后端初步解决

 .allowedOrigins({"ip1:port","ip2:port"})// 1 设置域名使用
 .allowedHeaders("特定信息特定header头")// 2 设置header头

总结

​ 当然上述解决方法并不能完全解决问题,前端代码审查、后端请求参数过滤各种方法有兴趣大家可以一起讨论~

​ 很多人觉得跨域是一个很傻的东西,其实它被创造出来的本身是一个安全机制 dog~

参考:

  1. 跨域问题是怎样造成的
  2. B站 睿小狼
  3. 不要再问我跨域的问题了
posted @ 2020-10-25 21:01  小马哥是没有感情的  阅读(240)  评论(0编辑  收藏  举报