axios使用sm2加密数据后请求参数多了双引号解决方法
axios使用sm2加密数据后请求参数多了双引号解决
- 背景
- 问题描述
- 解决过程
背景
因项目安全要求,需对传给后端的入参加密,将请求参数加密后再传给后端
前期将axios降低到1.6.7后解决了问题,但最近axios有漏洞,安全要求对版本升级,问题需要继续解决。
果然,技术栈不解决迟早会有问题。。。
问题描述
升到稳定版本后,在浏览器网络请求参数上发现加密后的参数加上了双引号

后端的日志也能看出来多了双引号,导致后端解密失败

正常的请求参数是不带双引号的

解决过程
- 一开始想将content-type转为text传给后端,但是此路不通,会导致后端无法接收参数,只能传json格式
Content-Type: application/json
- 那就转换思路,看axios是在什么地方将字符串添加了双引号的,于是在github上找到下面代码,解决问题
代码段来自于别人的提交记录,亲测有效
const instance = axios.create({transformRequest: function transformRequest(data, headers) {// doesn't apply the default transformRequest if the data is a string, so that axios doesn't add quotes see :// https://github.com/usebruno/bruno/issues/2043// https://github.com/axios/axios/issues/4034const hasJSONContentType = () => {const contentType = (headers && headers['Content-Type']) || '';return contentType.indexOf('application/json') > -1;};if (typeof data === 'string' && hasJSONContentType()) {return data;}axios.defaults.transformRequest.forEach((tr) => tr(data, headers));}});
相关细节可查看
https://github.com/axios/axios/issues/4034
https://github.com/usebruno/bruno/pull/2449
相关文章:
axios使用sm2加密数据后请求参数多了双引号解决方法
axios使用sm2加密数据后请求参数多了双引号解决 背景问题描述解决过程 背景 因项目安全要求,需对传给后端的入参加密,将请求参数加密后再传给后端 前期将axios降低到1.6.7后解决了问题,但最近axios有漏洞,安全要求对版本升级&…...
MybatisPlus 核心功能
MybatisPlus 核心功能 文章目录 MybatisPlus 核心功能1. 条件构造器1.1 QueryWrapper1.2 LambdaQueryWrapper(推荐)1.3 UpdateWrapper1.4 LambdaUpdateWrapper 2. 自定义SQL3. Service接口 1. 条件构造器 当涉及到查询或修改语句时,MybatisP…...
vivado EQUIVALENT_DRIVER_OPT、EXCLUDE_PLACEMENT
Vivado工具将所有逻辑上等效的信号的驱动程序合并为单个驱动程序 在逻辑优化过程中指定-merge_equivalent_drivers选项时 (opt_design)。请参阅《Vivado Design Suite用户指南:实施》中的此链接 (UG904)[参考文献20]了…...
docker也能提权??内网学习第6天 rsync未授权访问覆盖 sudo(cve-2021-3156)漏洞提权 polkit漏洞利用
现在我们来说说liunx提权的操作:前面我们说了环境变量,定时任务来进行提权的操作 rsync未授权访问覆盖 我们先来说说什么是rsync rsync是数据备份工具,默认是开启的873端口 我们在进行远程连接的时候,如果它没有让我们输入账号…...
TF卡病毒是什么?如何防范和应对?
在存储芯片及存储卡领域,TF卡病毒是一个备受关注的话题。在本文中,拓优星辰将详细解释TF卡病毒的含义、来源以及如何防范和应对这一问题,帮助客户更好地了解和处理TF卡病毒的风险。 1. TF卡病毒的含义 TF卡病毒是指针对TF存储卡(T…...
window对象监听浏览器页签之间的切换状态;前端监听浏览器切换页签的触发时机
window对象监听浏览器页签之间的切换状态 记录两种办法 第一种:会将任何鼠标点进或点出浏览器的操作监听;同页面也会触发 // 窗口获得焦点时的回调函数 function onWindowFocus() {console.log(窗口获得焦点);querySubmit() } // 窗口失去焦点时的回调函…...
MySQL 条件函数/加密函数/转换函数
条件函数 IF(): 如果条件为真,返回一个值,否则返回另一个值。 -- 示例:根据员工的薪水返回薪水等级 SELECT name, salary, IF(salary < 3000, Low, IF(salary BETWEEN 3000 AND 7000, Medium, High)) AS salary_level FROM employ…...
初学SpringMVC之接收请求参数及数据回显
pom.xml 文件导入 lombok 的依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></dependency> Controller 表示这是一个控制器 RequestParam 表示从前端接收…...
Java链表LinkedList经典题目
一.LinkedList的方法 首先先看一下链表的方法: 方法解释boolean add(E e)尾插void add(int index, E element)将 e 插入到 index 位置boolean addAll(Collection c)尾插 c 中的元素E remove(int index)删除 index 位置元素boolean remove(Object o)删除遇到的第一…...
【cocos creator】2.x,伪3d拖拽,45度视角,60度视角,房屋装扮
伪3d拖拽,45度视角,60度视角 工程下载:(待审核) https://download.csdn.net/download/K86338236/89530812 dragItem2.t s import mapCreat2 from "./mapCreat2";const {ccclass, property } = cc._decorator; /*** 拖拽类,挂在要拖拽的节点上*/ @ccclass export…...
【thingsbord源码编译】 显示node内存不足
编译thingsbord显示报错 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory问题原因分析 重新安装java版本 编译通过...
内存巨头SK海力士正深化与TSMC/NVIDIA合作关系,开发下一代HBM
据BusinessKorea报道,内存巨头SK海力士正深化与台积电(TSMC)及英伟达(NVIDIA)的合作关系,并计划在9月的台湾半导体展(Semicon Taiwan)上宣布更紧密的伙伴关系。 SK海力士与台积电的合作历史已久。2022年,台积电在其北美技术研讨会上宣布成立O…...
基于Pinia的WebSocket管理与优化实践(实现心跳重连机制,异步发送)
WebSocket作为一种全双工通信协议,允许服务器和客户端之间建立持久的连接,提供了比传统HTTP请求更为高效的数据交换方式。本文将探讨如何使用Pinia状态管理库在Vue应用中优雅地管理和优化WebSocket连接,以实现稳定、高效的实时数据传输。 环境…...
Perl词法作用域:自定义编程环境的构建术
🎭 Perl词法作用域:自定义编程环境的构建术 在Perl编程中,词法作用域(lexical scoping)是一种控制变量可见性的方式,它允许变量在特定的作用域内可见,从而避免变量名的冲突。Perl提供了灵活的机…...
vscode使用ssh连接远程服务器
开工啦 vscode连接远程服务器(傻瓜式教学) 正常根据上面文章的步骤就可以连接了 报错可以尝试的文章: VScode通过remote ssh连接虚拟机 & 报错过程试图写入的管道不存在(已解决) vscode remote ssh linux[血泪…...
linux 常用和不那么常用命令记录02 磁盘占用
常用的磁盘相关命令 du 有的时候我们想要查询一个文件所占用的磁盘空间大小,可以使用du命令来查看 命令 配置 参数 du [options] [files or directories]-h:以人类可读的格式显示输出(例如 KB、MB、GB)。 -s…...
mybatis日志记录方案
首先对指定表进行监控 对表进行监控,那么就要使用的是statementInterceptor 拦截器 使用拦截器那么就要写intercepts写拦截条件进行拦截 监控只对与增删改 查询不进行监控 对于字段的监控,是谁修改了字段,那么就进行报警,或者提醒 消息提醒使用钉钉机器人进行消息提醒 P…...
【LeetCode】最长连续序列
目录 一、题目二、解法完整代码 一、题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nu…...
Windows下终端Kafka指令常用操作
1、创建Topic kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test 2、查看Topic列表 kafka-topics.bat --list --bootstrap-server localhost:9092 3、设置Topic最大消息大小 kafka-topics.bat --bootstrap-s…...
QT---lineEdit相关信号
1.returnPressed信号 connect(ui.lineEdit_passWord, &QLineEdit::returnPressed, []() { // 输入密码回车后,调用校验密码接口ui.lineEdit_passWord->clearFocus(); //失去焦点on_param_confirmBtn_clicked();});2.输入后失去焦点才获取编辑框内新信息 参…...
如何快速掌握GBFR Logs:终极《碧蓝幻想:Relink》战斗数据监控指南
如何快速掌握GBFR Logs:终极《碧蓝幻想:Relink》战斗数据监控指南 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://gitcode.com/gh_mirrors/…...
Nginx从专家到小白
文章目录主要用途Nginx 本地路径映射 HTTP 服务搭建文档一、环境信息二、安装步骤2.1 下载 Nginx2.2 解压安装三、配置说明3.1 配置文件路径3.2 完整配置内容3.3 配置项说明四、常用命令4.1 启动 Nginx4.2 停止 Nginx4.3 重新加载配置4.4 查看进程状态4.5 查看端口监听4.6 测试…...
Freqtrade实盘避坑手册:我用这个开源框架3个月跑通加密货币策略
Freqtrade实盘避坑手册:3个月实战打磨的加密货币策略进阶指南 当第一次在Binance交易所看到自己开发的量化策略自动执行交易时,那种程序化交易带来的震撼感至今难忘。Freqtrade作为开源框架中的佼佼者,确实为个人开发者提供了从回测到实盘的完…...
Graphormer保姆级教学:Supervisor配置文件(graphormer.conf)逐行注释
Graphormer保姆级教学:Supervisor配置文件(graphormer.conf)逐行注释 1. Graphormer简介 Graphormer是一种基于纯Transformer架构的图神经网络,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计…...
Phi-4-mini-reasoning vLLM模型服务化:gRPC接口与Protobuf定义详解
Phi-4-mini-reasoning vLLM模型服务化:gRPC接口与Protobuf定义详解 1. 模型概述 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理。作为Phi-4模型家族的一员,它特别针对数学推理能力进行了…...
《常见三维CAD模型表示法》
表示法核心思想 / 定义数据结构 / 关键特点优点缺点CAD中的应用场景常见软件 / 文件格式B-rep (边界表示)通过精确记录物体的边界(顶点、边、面)及其拓扑关系(邻接、归属)来定义实体包含几何信息(点坐标、曲线方程、曲…...
Symfony Monolog Bundle终极指南:如何快速搭建专业日志系统
Symfony Monolog Bundle终极指南:如何快速搭建专业日志系统 【免费下载链接】monolog-bundle Symfony Monolog Bundle 项目地址: https://gitcode.com/gh_mirrors/mo/monolog-bundle Symfony Monolog Bundle是Symfony框架中一款强大的日志管理工具࿰…...
OpenClaw跨平台控制:Kimi-VL-A3B-Thinking远程执行多模态任务方案
OpenClaw跨平台控制:Kimi-VL-A3B-Thinking远程执行多模态任务方案 1. 为什么需要跨平台远程控制? 上周五晚上11点,我正躺在沙发上刷手机,突然想起有个紧急的竞品分析报告需要处理。电脑在书房,实在懒得起身。这时我意…...
Claude Code 源码研究【第二弹】:智能体框架与大模型相互成就
在上一篇“Claude Code 源码研究:一个 while(true) 循环让大模型自己干活”之后,继续我们的研究——01自然语言引导能保证模型每次都听话吗?Claude Code 不靠 if-else 控制模型选哪个工具,而是靠 40 份精心撰写的"工具说明书…...
《QGIS快速入门与应用基础》256:SVG格式:适合矢量图二次编辑
作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...
