项目安全问题-SM4加解密

2023-10-29

本篇建议与下方链接文章一起观看

http://t.csdn.cn/tjmeS

项目安全问题一直被人们研究,当前端路径上通过?status这种拼接参数时,参数的值在浏览器路径栏上非常醒目,是很容易被人恶意修改的,比如该用户并没有编辑权限,但有心之人却可以通过修改参数status的值把see改成edit,然后还可以改query路径参数的id,前端通常会通过上述参数开启页面按钮权限,也会根据id去调用接口实现功能。

事实上如果是移动端,也会出现上述情况,我之前在做公众号开发时,就经常在右上角复制页面路径然后改参数值去测试功能,后来是通过一些判断,右上角三个点是否出现,把相关功能给隐藏了才得以解决,关于隐藏右上角的功能按键,微信开发者官方文档应该是写的很清楚,我们可以在指定页面再开启该功能。

项目中我们会把后端返回的一些信息放在会话存储或本地存储中,这也会带来安全问题

web端开发项目时怎么解决安全问题,下文便是我当前项目在用的方法。

1.使用SM4加密——请求头加两个参数,一个是token加用户ID加时间戳加当前请求的路径,一个是请求时时间戳,默认query上拼两个参数这种,md5加解密用户信息。

  // 获取当前时间-时间戳-ISO 8601扩展格式的日期 new Date(Date.now()).toISOString() 

2.把参数传给后端后,后端解密然后判断该用户是否有修改、查询当前页面内容的权限,进而阻止有心之人的恶意操作。

3.后端传给前端的所有响应数据都加密,前端SM4解密后使用。

4.前后端怎么加解密:

参考该gitee 项目

其中的base64js.js文件可能有问题,我自己npm install base64-js了一下,然后在SM4Util.js里引入使用

var base64js = require('base64-js');

一、在前端axios请求拦截器可以获取到我们想要的,像接口路径和参数,我们可以在这里进行加密处理。

Vue.prototype.$http.interceptors.request.use(config => {

  // console.log('config的路径,参数 :>> ', config.url,config.data);
// 加密 SM4Util.sm4ECBEncrypt(需要加密的字符串, 密钥)
config.headers.随便起的名称={加密后的参数};
  return config;
});

二、在响应拦截器Vue.prototype.$http.interceptors.response.use里做对响应的统一解密处理,然后return出去;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

项目安全问题-SM4加解密 的相关文章

  • VueJS 精确活动类

    我有一个使用 Router link 的菜单 当 Router link 被激活时 我想将类 Active 放在 li 上 ul class nav nav second level li li ul
  • 如何切换各个
  • 元素的类?
  • 当我切换变量时active在下面的代码中 activeCSS 类应用于列表中的所有元素 从列表中的所有元素中删除 如何单独定位列表元素 Todo List 示例具有类似的功能 待办事项 待办事项已完成 但它有点超出了我的技能范围 ul li
  • Vue.js - 以编程方式设置槽内容

    有什么办法可以从组件内部设置 覆盖插槽的内容吗 喜欢 模板 div div
  • 无法通过 Vue.js 从 Laravel 后端下载文件 (pdf)(Axios 帖子)

    我在 Vue 中有一个多步骤表单 一旦收集到所有信息 我就会将结果发布到 Laravel 控制器 这是网站的经过验证的区域 我正在使用护照 所以本质上我有一个 Vue SPA 它是在 Laravel 5 7 框架内构建的网站的管理区域 Vu
  • vue如何设置嵌套对象的默认道具

    我的道具是这样的 house kitchen sink 我尝试过类似的事情 但没有成功 props house type Object default gt kitchen sink 如何为此类对象设置默认道具 来自文档 对象或数组默认值必
  • 如何使用 vue 观察对象数组中的特定属性

    我正在使用 vue js 2 5 2 我有一个对象数组 我想观察 forms selected 如果它发生变化 则调用一个函数 这是我的尝试 但显然这是不正确的 我尝试将数组放入 for 循环中以观察所选的每个对象的属性 watch for
  • Vue-动态导入vue组件

    我有很多组件 我想按需导入 我有一个下拉菜单 其中实际上包含组件列表 即要加载的内容 我试过这个例子
  • 如何在 NuxtJs 路由中使用 *(星号)?

    在 vue cli 生成的普通 Vue 不是 Nuxt 项目中 使用 在 vue router 中这样工作 export default new Router routes path about name about component A
  • Vue 3 输入模式

    我想创建输入 如果模式不匹配 我可以用空字符替换输入的字符 模板
  • 在 vuejs 上将 \n 替换为新行

    我正在尝试将 n 字符替换为来自端点的数据的新行 I tried p item licensedocument legal documentText replace r n r n g br p 并没有奏效 当我将replace 写入问题末
  • Vue: vue-i18n: 无法翻译 keypath 的值,使用 keypath 的值作为默认值

    我正在使用 Vue 我想展示三种语言 英语 他加禄语和宿务语 现在我有错误 无法转换键路径 NavbarMobile home 的值 使用 keypath 的值作为默认值 我通过 console log this i18n locale 检
  • 在 Vue 3 的生产构建过程中从 Vue 模板中删除所有数据测试属性

    我在 TS 中使用 Vue3 最后一个 vue cli 我想在 vue loader 编译 vue 文件时获取所有节点 vnodes 元素 我需要读取节点属性并删除所有 数据测试 我尝试在 vue config js 中使用 module
  • 以下文档我无法创建 Vue.js 3 的实例

    The code https stackblitz com edit vue ttt file src main js https stackblitz com edit vue ttt file src main js 问题 我正在尝试在
  • 为什么我从 c# 到 js 得到不同的 MD5 哈希值?

    我有一个用于加密密码的 C 函数 System Security Cryptography MD5CryptoServiceProvider md5Provider new System Security Cryptography MD5C
  • Vue Router - 使用 Vue 2 Composition API 获取路由参数

    我正在使用Vue 2 组合 API https github com vuejs composition api并想从我的 Vue Router 访问路由参数setup method 如中所述Vue 路由器文档 https next rou
  • Vue 组件方法未在动态 HTML 中的事件上运行

    我正在尝试动态创建一些 HTML 内容并将 Vue 组件方法绑定到元素上的事件 然而这不起作用 下面是问题的描述和测试用例的片段 重现问题的步骤 Click 点我1 观察控制台 Click 切换工具提示的弹出框 Click 点我2 观察控制
  • Vue模板-渲染HTML特殊字符代码

    如何在我的 Vue 模板中完全渲染 HTML 特殊字符代码 例如我有这个 JSON 数据 id post91 slug null title Breakfast 038 Tea 我怎样才能转换Breakfast 038 Tea to Bre
  • Laravel Vue SPA 与 MPA/SSR

    许多 laravel vue 教程使用 ajax 调用来获取数据 看来 SPA 与 Laravel 是完全隔离的 IE Laravel 只是一个数据 API vue 应用程序也可以简单地托管在第三方外部服务器 例如 AWS S3 上 这是推
  • 如何在 Nuxt 中点击链接下载文件?

    我遇到了一个边缘情况问题 如果用户浏览几条 Nuxt 路线 单击网站 徽标 这是一个锚标记返回主页 然后单击浏览器本机后退按钮 最后单击一个应该的链接要打开 pdf 它会重定向到我的 404 页面 如果用户在页面加载时单击 pdf 链接 它
  • Vue:单个网站可以使用多个 Vue 应用程序吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个 Hugo 静态网站 我正在使用 Vue 使其动态化 我们正在转型 长期计划尚未确定 但在中期阶段我们正在使用 Vue 我已经在一个页面

随机推荐

  • TensorFlow学习(4) 学习率调度 & 正则化

    1 学习率调度 恒定高学习率训练可能会发散 低学习率会收敛到最优解但是会花费大量时间 1 1 常用的学习率调度及其概念 幂调度 指数调度 分段调度 性能调度 1 2 实现幂调度 在创建优化器时 设置超参数decay 使用示例 optimiz
  • Python 面向对象程序设计类的使用、继承等

    这个实验主要通过了解对象 类 封装 继承 方法 构造函数和析构函数等面向对象的程序设计的基本概念 掌握 Python 类的定义 类的方法 类的继承等 在做实验时要注意 init 应该是4个下划线 前后各两个 也要注意自己的属性条件 并且也可
  • 对 tcp out-of-window 的安全建议

    TCP 收到一个 out of window 报文后会立即回复一个 ack 这是 RFC793 中 SEGMENT ARRIVES 段的要求 但这是为什么 难道不是默默丢弃才对吗 对 oow 报文回复 ack 岂不是把正确的 ack 号回过
  • L2-041 插松枝

    include
  • 复习1: 深度学习优化算法 SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam 详细解释 + 如何选择优化算法

    深度学习优化算法经历了 SGD gt SGDM gt NAG gt AdaGrad gt AdaDelta gt Adam gt Nadam 这样的发展历程 优化器其实就是采用何种方式对损失函数进行迭代优化 也就是有一个卷积参数我们初始化了
  • 无向图染色

    无向图染色 给一个无向图染色 可以填红黑两种颜色 必须保证相邻两个节点不能同时为红色 输出有多少种不同的染色方案 输入描述 第 行输入M 图中节点数 N 边数 后续N行格式为 V1V2表示一个V1到V2的边 数据范围 1 lt M lt 1
  • 研发工具链介绍

    本节课程为 研发工具链介绍 我们将主要学习三个工具 项目管理工具 iCafe 代码管理工具 iCode 交付平台 iPipe 此外我们知道 管理实践具有以下三个特点 用 精益 指引产品规划 用 敏捷 加速迭代开发 用 数据 驱动持续改进 而
  • 那些在一个公司死磕5年以上的测试,最后都怎么样了?

    2023年的测试市场是崩溃的 即使是老员工 也要面对裁员 降薪 外包化 没前途 薪资不过20k 没有面试 找不到工作 确实都客观存在 但与此同时 也有不少卷赢同行拿高薪的案例 因为只要互联网存在 测试就是刚需 只是需要更卷一些了 这里我准备
  • MSRA实习申请经验分享

    MSRA实习申请经验分享 自我介绍 简历投递 面试 成败关键点 自我介绍 博主目前大四 因为大四下没啥事想申请到MSRA实习半年 不久前成功申请到了MSRA的实习 这里简单分享一下经验 首先自我介绍一下 本人本科是国内某top10的985高
  • springboot简单整合logback日志框架

    引入依赖 实际上我们只需要引入springboot的的web依赖就可以了 springboot是默认整合logback的依赖的 编写xml文件 xml文件默认叫做logback xml 放在resource目录下就可以
  • python画桃心表白

    python用turtle画简单图案比较方便 大一学python的turtle模块时 记得要画各种图案 如国旗 桃心等等图案 期末课程设计时有可能还会遇到画54张扑克牌 当初室友就被迫选了这道题 下面是程序 import turtle im
  • 基于FREERTOS系统的LWIP协议移植(STM32F1战舰版)

    文章目录 参考文献 前言 源码链接 FREERTOS系统介绍 FREERTOS系统之API函数 1 创建任务函数xTaskCreate 2 删除任务函数xTaskDelete 3 创建二值信号量函数xSemaphoreCreateBinar
  • 找不到BufferedImage这个Class的解决方法

    找不到BufferedImage这个Class的解决方法 环境 1 RedHat AS5 64位 2 WebSphere6 0 32位版本 正文 发现原来在RedHat AS4 32位系统上跑的程序不能在64位RedHat AS5中运行 系
  • 你还在 Docker 中跑 MySQL?恭喜你,好下岗了!

    上一篇 一个90后员工猝死的全过程 0 2T架构师学习资料干货分享 来源 toutiao com i6675622107390411276 容器的定义 容器是为了解决 在切换运行环境时 如何保证软件能够正常运行 这一问题 目前 容器和 Do
  • PyTorch 入坑七:模块与nn.Module学习

    PyTorch 入坑七 模型创建概述 PyTorch中的模块 torch模块 torch Tensor模块 torch sparse模块 torch cuda模块 torch nn模块 torch nn Parameter torch nn
  • 电脑开机不启动原因

    现象 长时间不关机 息屏后无法唤醒 电源指示灯亮 但是是黑屏 拔电重开 还是黑屏 显示器提示进入节电模 首先怀疑是内存条松了 或者接触不良 本人机器这边解决步骤如下 1 拔插内存条 开机试试 2 内存条换位置 开机试试 3 先取下一条内存条
  • conda install 和 pip install的区别

    目录 前言 一 范围不同 二 使用条件不同 三 对虚拟环境的管理能力不同 四 可使用包的数量不同 前言 conda和pip一般被认为是几乎相同的 但这两个工具虽然功能存在部分重叠 但其设计的目的是不同的 一 范围不同 Anaconda是一个
  • PCA、聚类、LFDA 和 MDS 相关绘图 iris (R语言)

    本文档使用 ggplot2 和解释了 PCA 聚类 LFDA 和 MDS 相关绘图 ggfortify 绘制 PCA 主成分分析 ggfortify 让我们 ggplot2 知道如何解释 PCA 对象 加载后 ggfortify 您可以gg
  • SpringBoot2的异常处理、Aop(事务)、拦截器

    目录 一 异常处理 一 ControllerAdvice ExceptionHandler 注解处理异常 二 自定义 HandlerExceptionResolver 类处理异常 二 事务Aop的相关使用 主要说明事务的使用方式 一 事务的
  • 项目安全问题-SM4加解密

    本篇建议与下方链接文章一起观看 http t csdn cn tjmeS 项目安全问题一直被人们研究 当前端路径上通过 status这种拼接参数时 参数的值在浏览器路径栏上非常醒目 是很容易被人恶意修改的 比如该用户并没有编辑权限 但有心之