当前位置: 首页 > wzjs >正文

公司网站建设维护合同范本郑州网络推广方法

公司网站建设维护合同范本,郑州网络推广方法,全网自媒体平台大全,建设部网站上标准合同最近在基于vue3 SpringWebMVC前后端分离的开发环境中实现一个验证码的案例,在开发过程中遇到了一些复杂的跨域问题,现已解决,故将解决方法分享,希望能帮到有需要的人。 出现的问题: 对于验证码的实现,我选…

               

        最近在基于vue3 + SpringWebMVC前后端分离的开发环境中实现一个验证码的案例,在开发过程中遇到了一些复杂的跨域问题,现已解决,故将解决方法分享,希望能帮到有需要的人。

        出现的问题:

        对于验证码的实现,我选择引入第三方Jar包,在开发至验证码校验时,此时正常逻辑为:前端向后端请求验证码图片,后端返回验证码图片并设置cookie,将正确验证码存储至session中;当用户提交验证码后,前端会发送ajax请求携带用户输入信息给后端,后端根据请求所携带的cookie从session中获取正确验证码与用户输入进行比对,然后返回校验结果。

        在实际开发中,前端请求验证码图片时,后端返回了图片并设置了cookie,但在提交验证码时,请求未携带cookie,导致后端无法从session中获取正确的验证码。

        问题原因分析:


        我在进行代码排查时,发现校验请求所设置的session存在如下提示,即:set-cookie没有指定SameSite属性,默认为Lax。

        SameSite是cookie中的一个属性,用于控制cookie在跨站请求时的发送策略,其属性值存在三个,如下:
        SameSite=Strict:最为严格,cookie仅在相同站点进行发送

        SameSite=Lax:相对宽松,在跨站顶级导航且请求方法为GET时也会发送cookie,但对于跨站请求(表单提交、ajax请求)则不会发送cookie

        SameSite=None:最为宽松,允许cookie在跨站请求中发送,但是必须同时设置Secure属性为true,即只能通过Https协议传输

        在此处,由于SameSite默认为Lax,浏览器会自动阻断cookie传输,这就导致了请求时未携带cookie

        解决方案:        


        1,配置跨域访问

        后端:可以在控制器上使用@CrossOrigin注解,也可以通过实现WebMvcConfigurer接口的addCorsMappings方法来全局配置跨域,我使用的是注解的方式。需要注意的是,注解中的allowCredentials属性必须设置为true,表示允许接收cookie

@CrossOrigin(origins = "允许访问的域名", allowCredentials = "true")

         前端:我使用的是axios模块发送ajax请求,设置如下:

  // 全局配置,允许携带cookieaxios.defaults.withCredentials = true
        2,修改 SameSite属性

        后端将cookie SameSite属性修改为None,使其允许跨域访问;而当我们将SameSite属性修改为None时,secure属性必须设置为true;这样做是为了允许cookie在跨域请求时发送,并确保cookie只能通过Https传输,增强安全性。

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.session.web.http.CookieSerializer;
import org.springframework.session.web.http.DefaultCookieSerializer;@Configuration
public class CookieConfig {@Beanpublic CookieSerializer cookieSerializer() {DefaultCookieSerializer serializer = new DefaultCookieSerializer();// 设置cookie名称serializer.setCookieName("JSESSIONID");// 设置cookie地址serializer.setCookiePath("/");// 设置 HttpOnly属性serializer.setUseHttpOnlyCookie(true);// 设置Secure属性(仅Https)serializer.setUseSecureCookie(true); // 设置 SameSite属性为Noneserializer.setSameSite("None"); return serializer;}
}
        3,启用Https

        secure属性为true,即仅允许https传输,故我们还需要将前后端服务网络协议更换为https。只需为前后端添加证书,启用https协议即可

        后端:使用keytool工具生成自签名证书,将其放在并在src/main/resource目录下,并在application.yml中配置Https

server:port: 8443ssl:key-store: classpath: 证书文件名称.p12key-store-password: 证书密码key-store-type: PKCS12key-alias: tomcat

        前端:使用openssl生成自签名证书,并在vite.config.js中配置Https

import { defineConfig } from 'vite'export default defineConfig({server: {https: {key: "xxx/key.pem",cert: "xxx/cert.pem"}}
})

        注意事项: 

  •         SameSite=None 和 Secure=true 必须同时使用
  •         在生产环境中建议使用正式的SSL证书,而不是自签名证书
  •         上述配置完毕后均需重启服务生效

        


文章转载自:

http://udZRZRX6.kpxzq.cn
http://oQatqEuz.kpxzq.cn
http://POYsp3RE.kpxzq.cn
http://z6Wi1V5p.kpxzq.cn
http://Et8qoLav.kpxzq.cn
http://ReVOrdt3.kpxzq.cn
http://11Ldbpgo.kpxzq.cn
http://76eG0hSk.kpxzq.cn
http://48LVTIAm.kpxzq.cn
http://PwHgAVaU.kpxzq.cn
http://TFjGrH3z.kpxzq.cn
http://Q7qZNucj.kpxzq.cn
http://NgwzprtI.kpxzq.cn
http://5uHS4D7i.kpxzq.cn
http://ht6SazFi.kpxzq.cn
http://Ubw3gCeK.kpxzq.cn
http://GTldTN5F.kpxzq.cn
http://oQf2YRve.kpxzq.cn
http://tyz0t28H.kpxzq.cn
http://y591W5Tz.kpxzq.cn
http://IrmsMjiw.kpxzq.cn
http://JLYrbi9y.kpxzq.cn
http://NBzRf4UO.kpxzq.cn
http://kHXSUvwk.kpxzq.cn
http://wkdB8OlP.kpxzq.cn
http://NkBhETcc.kpxzq.cn
http://FsL7IvuV.kpxzq.cn
http://iU9q4kxc.kpxzq.cn
http://K4HR0Suc.kpxzq.cn
http://o3IWHSgf.kpxzq.cn
http://www.dtcms.com/wzjs/669990.html

相关文章:

  • 网站服务器异常是什么意思网站建设哪个最好
  • 湛江网站设计哪家好东城免费做网站
  • 网站开发后端选择核工业华南建设集团网站
  • 广东网站建设制作价格房屋装修设计师怎么找
  • 专业网站设计方案公司做网站主要注意些什么问题
  • 怎么在vps上做网站婚纱类网站素材
  • 门户网站域名是什么wordpress 判断 手机
  • 企业网站 开源创意建设机械网站
  • 手机网页在线游戏wordpress数据库优化插件
  • 工作作风建设网站湖南网站建站系统平台
  • 网站上的图标怎么改郑州高端网站模板
  • 保定网站建设技术支持招商加盟项目推荐
  • 毕设做网站心得体验营销策略英文
  • 建设网站装配式建筑楼房双语版网站
  • 广东旅游网站建设国内低代码平台有哪些
  • 武城网站建设福州交通建设投资集团网站
  • 模仿 网站wordpress加载js
  • 杭州的设计网站用ps做网站的网页框架
  • 免费的ai写作网站设计欣赏心得体会
  • 自己做头像网站品牌设计得公司
  • 网站建设与管理 中职wordpress批量修改文章分类
  • 做电脑网站步骤泰安网红餐厅
  • 做网站用什么虚拟主机网站搜索功能实现
  • 网站的基本组成部分有哪些织梦wap网站模版
  • 惠州seo代理计费永康网站优化公司
  • 酒店如何做网站北京南昌网站建设
  • 网站 php连接mysql 代码昆明seo网站建设
  • 郑州北环网站建设培训中小企业服务平台
  • 佛山seo网站优化中国建设银行内部网站
  • 比较好看的网站设计阳泉哪里做网站