秒懂!项目安全问题-SM4加解密

news2025/1/18 20:17:59

项目安全问题一直被人们研究,当前端路径上通过?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出去;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DataX】将hive表数据导入ES

目录 一、环境 二、创建hive测试表 三、Es写入插件包 四、配置json 五、数据同步 1、执行命令 2、查看es结果 一、环境 DataX:windows安装 Es版本:7.9.0 二、创建hive测试表 CREATE TABLE teacher(name string,age int )row format del…

抖音未来的发展趋势|成都欢蓬信息

抖音未来的发展趋势,近年来随着互联网技术的发展,小视频app也逐渐走入大家的日常生活中,闲着的时候打开手机抖音APP,就可以刷到世界各地人们分享的视频和直播,下面一起看看抖音未来的发展趋势 一、抖音的现状   据权…

【 五子棋对战平台(java_gobang) 】

文章目录 一、核心功能及技术二、效果演示三、创建项目扩展:WebSocket 框架知识 四、需求分析和概要设计五、数据库设计与配置 Mybatis六、实现用户模块功能6.1 数据库代码编写6.2 前后端交互接口6.3 服务器开发6.4 客户端开发 七、实现匹配模块功能7.1 前后端交互接…

构建新一代智慧园区移动应用以推动数字转型

随着智慧城市的建设和智慧园区的崛起,智慧园区数字一体化建设成为园区发展的重心,当然数字转型离不开移动应用的整合服务。 在过去的几年中,智慧园区移动应用已经发展成为园区管理和服务的重要手段之一,为企业和员工提供了更加便…

知行之桥EDI系统2023版功能介绍——概览页面

登录知行之桥EDI系统2023版,即可看到概览页面。默认情况下,会显示过去7天的各项指标。用户可以在页面右上角:显示过去的数据 下拉列表中手动选择需要的时间段,如:24小时、3天、7天等。 关键指标的自定义配置 概览页面…

如何将exe注册为windows服务,直接从后台运行

如何将exe注册为windows服务,直接从后台运行 使用instsrvsrvanywindow64位系统安装配置 window32位系统安装 使用instsrvsrvany 这是地址:链接: 网盘地址 提取码: h2za 复制这段内容后打开百度网盘手机App,操作更方便哦 window64位系统 安…

[OOD设计] - 电梯系统设计

明确主要需求 首先需要设计电梯系统的基本工作流程,一个简单电梯系统主要就是两个主要功能: 乘客在电梯外按下按钮时,电梯系统会驱动一个电梯来接人乘客在电梯内部按下楼层按钮时,电梯系统会驱动该电梯到达指定楼层 根据需求来…

泰克Tektronix AFG31021 任意波函数发生器产品资料

AFG31021是一款高质量、多功能的任意波形发生器,可以生成高精度、高分辨率的波形信号。该产品的主要特点包括: 可以生成任意波形信号,内置多种标准波形,如正弦波、方波、三角波、锯齿波等,也可以通过用户自定义来生成…

支付从业者转型路在何方?

近来,整个支付行业,已经“卷”出了新高度。 营销上电销卷地推,工单卷电销,POS机具则是退押金卷不退押金,无押金卷退押金”,互相“卷”得不亦乐乎。 与此同时,支付圈子里聊的永远是“成本上升”…

微信小程序是怎么做的?

微信小程序是一种轻量级的应用,它可以在微信内部直接使用,无需下载和安装。那么,微信小程序是怎么做的呢? 微信小程序制作的大概步骤 微信小程序制作主要包括以下几个步骤: ①注册小程序账号 ②在小程序制作工具创…

5th-Generation Mobile Communication Technology(一)

目录 一、5G/NR 1、 快速参考(Quick Reference) 2、5G Success 3、5G Challenges 4、Qualcomm Videos 二、PHY and Protocol 1、Frame Structure 2、Numerology 3、Waveform 4、Frequency Band 5、BWP 6、Synchronization 7、Beam Management 8、CSI Fra…

matmul/mm 函数用法介绍

介绍torch.matmul之前先介绍torch.mm函数, mm和matmul都是torch中矩阵乘法函数,mm只能作用于二维矩阵,matmul可以作用于二维也能作用于高维矩阵 mm函数使用 x torch.rand(4, 9) y torch.rand(9, 8) print(torch.mm(x,y).shape)torch.Size([4, 8]) m…

Linux Shell 实现一键部署VMware Workstation

VMware Workstation 前言 VMware Workstation Pro 是业界标准的桌面 Hypervisor,用于在 Linux 或 Windows PC 上运行虚拟机 download VMware_Workstation VMware_Workstation WindowsVMware_Workstation linux文档downloaddownload参考 Linux 各系统下载使用参…

Scrapy 基本使用

一、Scrapy框架使用 1. 创建scrapy项目(不能有汉字,不能数字开头) scrapy startproject Baidu 2. 创建爬虫文件 1. cd Baidu 2. scrapy genspider wenda www.baidu.com 注意: parse()是执行了start_url之后要执行的方法&#…

Camunda 外部任务(External Task)如何使用

Camunda的外部任务(External Task)是一种可分配和可重试的任务,与传统的用户任务不同,它可以在 Camunda 流程引擎之外的应用程序中执行。 外部任务可以用于将复杂的业务逻辑委托给外部系统,例如第三方服务或自定义的应…

Java简便模拟验证码

package staticStu.util;import java.util.Random;public class Login {public static void main(String[] args) {// 开发一个验证码// 1、定义一个变量记录验证码String code"";// 2、定义一个变量记住全部验证码字符String data"abcdefghijklmnopqrstuvwxyzA…

mongodb wireshark显示

mongodb wireshark展示为ssl,只需要禁用tls,然后把当前会话解码为mongo就可以

鸿蒙Hi3861学习十四-Huawei LiteOS-M(AP模式)

一、简介 参看上一章:鸿蒙Hi3861学习十四-Huawei LiteOS-M(STA模式)_t_guest的博客-CSDN博客 二、API介绍 RegisterWifiEvent 函数功能: 为指定的WIFI事件注册回调函数。当WIFIEVENT中定义的WIFI事件发生时,将调用已注…

MySQL体系架构

一、 MySQL体系架构 MySQL体系架构可分为物理架构和逻辑架构。 1、MySQL物理体系架构 1.1 配置文件 auto.cnf: 配置了MySQL Server的UUIDmy.cnf: MySQL的配置文件 1.2 其他重要文件 -basedirdir_name: MySQL安装的二进制文件目录-datadirdir_name: MySQL的数据目录和-pid-…

使用 Conv1D-LSTM 进行时间序列预测:预测多个未来时间步【优化】

未优化之前的版本见下,作者当时主要是为Mark这个项目,未进行深入分析。 使用 Conv1D-LSTM 进行时间序列预测:预测多个未来时间步 Introduction 通常有许多时间序列预测方法,例如 ARIMA、SARIMA 和 Holtz-winters,但是…