加密算法在链接防抓取和数据防篡改应用

news2024/11/15 18:02:00

写在前

对工作中遇到的加密算法算法进行总结和思考,分析不同加密算法优缺点和对应解决问题场景,思考进一步可改进点。

场景1、加密算法在链接防止抓取中应用

客户端和服务器端对(appverision+url+盐+offset)使用加密规则进行加密,对传输数据进行签名,则进行正常业务处理,否则直接拒绝请求。为了加密算法的隐私性,仅对小部分开发者可见,客户端和服务器过滤器中加密算法声明为native方法,对具体实现进行隐藏。
链接防盗架构设计图

链接防盗架构设计图

核型类图:
在这里插入图片描述

场景2、加密算法进行参数加密

使用加密算法对请求参数进行加密,可以防止第三方修改参数,例如给赠送优惠卷的接口进行加密,防止用户刷接口给修改优惠券的数量。通过实现filter接口,对所有接口进行参数进行加密校验,这样会一定程度上增加接口的耗时,有时只希望对部分接口进行参数加密,此时可以考试使用切面编程+注解方式,在切面类中对参数进行加密校验,在需要加密校验接口上添加标识注解,同切面类统一处理。
在这里插入图片描述

参数加密架构设计图

场景3、对会员视频进行加密

用户在对视频路径的获取只有一次,随后在用户和CDN之间建立起视频流传输通道。只对请求参数和请求url进行加密校验,依然无法防止视频分享,因此需要对返回视频流进行加密。
在这里插入图片描述

Conclusion

从加密方式上看,场景1和场景2属于单向加密,不要要解析,加密得到的签名只用于安全性校验,场景3为双向加密,需要还原出加密数据。场景1通过设置失效性签名,在一定程度上保证了服务端之处理来自自己客户端请求,但第三方采用非手动方式(如果第三方编写程序,缩短劫持时间)依然可以劫持请求,依然会通过校验,劫持过程中,如果对请求参数进行修改,依然有可能产生不安全行问题,当然可以通过针对具体场景在服务端对参数进行业务校验弥补;场景2有效防止了参数被篡改,不足是,但是第三方可以劫持url,重复对发送该请求,可以通过对接口进行幂等性校验弥补。结合场景1和场景2各自优点,可以对参数进行加密生成签名,同时向签名中加入时间戳控制失效性,可以一定程度上防止url被劫持,并且可以保证参数不被篡改。由于加密方式在客户端也存在在,一旦泄漏,整个加密将完全失效。
可以对场景3中不同视频资源使用不用的密钥进行加密,并且可以对加密服务器下发密钥进行二次加密,增加破解成本。

任何加密算法和技术都存在破密的可能性,根据数据安全要求等级和实现成本,选择合适的方式对数据进行加密。

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

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

相关文章

bing搜索技巧

“” 双引号表示完全匹配,结果中必须出现与搜索文本完全相同的内容。 2 A -B 搜索包含A但不包含B的结果(请注意A后面的空格不能省略) 3 filetype 搜索对应类型的文件。例如:中国防火墙 filetype:ppt,即为搜索包含主题…

Hive概论、架构和基本操作

Hive是一个构建在Hadoop上的数据仓库框架,最初,Hive是由Facebook开发,后台移交由Apache软件基金会开发,并做为一个Apache开源项目。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表&a…

【Maven 入门】第三章、Maven POM

一、什么是 Maven POM? POM 是 Maven 中最重要的概念之一,它描述了一个 Maven 项目的基本信息和依赖关系。简单来说,POM 就是一个 XML 文件,其中包含了以下内容: 项目的基本信息,如名称、版本号、描述等。…

超详细Redis入门教程——Redis 的安装与配置

前言 本文小新为大家带来 超详细Redis入门教程——Redis 的安装与配置 相关知识,具体内容包括Redis 的安装,连接前的配置,Redis 客户端分类(包括:命令行客户端,图形界面客户端,Java 代码客户端&…

政策和技术引导企业布局光伏组件回收市场 积极应对光伏组件“退役潮”

一、发展光伏组件回收是实现我国碳中和的战略需求 光伏组件回收主要是通过对其各组件部分进行物理或化学方法处理,进而得到拥有经济价值的材料,进而减少环境污染,实现对废弃光伏组件资源的回收再利用。 我国是光伏组件制造及应用大国&#…

远程仓库的克隆和上传

要创建项目文件夹下打开Git Bush Here --> git clone 远程仓库地址 ! 没有权限访问 原因: 之前登过别人邮箱号,导致克隆失败 解决: 第一步. C盘->用户->电脑用户名->.gitconfig->用vscode打开删除信息,然后保存即可 . 第二步.电脑搜索找到 凭据管理器->wi…

【Python_Scrapy学习笔记(十一)】基于Scrapy框架的下载器中间件添加Cookie参数

基于Scrapy框架的下载器中间件添加Cookie参数 前言 本文中介绍 如何基于 Scrapy 框架的下载器中间件添加 Cookie 参数。 正文 1、添加中间件的流程 在 middlewares.py 中新建 Cookie参数 中间件类在 settings.py 中添加此下载器中间件,设置优先级并开启 2、基…

【C++初阶】命名空间 namespace

一.前言 在正式进入C前,我们需要先了解了解C。顾名思义,C是基于C的一种编程语言,相较于C,C写出来的代码更简洁,有时候C需要几百行代码,而C只需要几十行就可以解决,C也很好的解决了C中存在的一些…

【夜莺监控搭建】

夜莺监控搭建V6版本 v6版本系统架构安装部署安装时序数据库安装mysql、redis和n9e(夜莺主程序)安装categraf 登录平台如何修改密码添加数据源 官网: https://flashcat.cloud/ GitHub项目地址: https://github.com/ccfos/nightin…

Mongo集群化部署+高可用架构

数据库开发系列 文章目录 数据库开发系列前言一、MongoDB存储引擎二、MongoDB 复制(副本集)三、为什么需要分片集群架构四、高可用分片集群架构(复制集)总结 前言 数据库的演进 随着计算机的发展,越来越多的数据需要被…

python+vue 服装穿搭信息管理系统

本系统采用自上往下的方法开发,基本定位如下功能: 本课题要求实现一套服装信息管理系统的设计与实现,系统主要包括管理员模块和用户模块功能模块。 由于本系统需要在不同设备上都能运行,而且电脑配置要求也要越低越好&#xff0c…

SpringMVC框架详解(学习总结)

目录 什么是MVC SpringMVC概述 SpringMVC常见开发方式 SpringMVC执行流程 SpringMVC核心组件介绍 快速构建Spring MVC程序 SpringMVC参数绑定 SpringMVC跳转方式 SpringMVC处理json请求和响应 SpringMVC静态资源处理 SpringMVC操作session和cookie SpringMVC拦截器 …

基于nuxt3的语雀文档批量导出

语雀文档批量导出 快速访问 Github Blog 项目由来 语雀是一个不错的笔记与文档知识库,但是最近发现他开始割韭菜了, 知识库的公开开始收费,就想着把内容都导出自己来部署,发现并没有批量操作,amazing,…

美国运营商PTCRB认证PTCRB认证怎么做PTCRB认证是什么?

大家好,今天我想和大家分享一下什么是PTCRB认证! PTCRB是指个人通信服务型号认证评估委员会,由北美移动运营商于1997年成立。目前的运营商已经不仅限于北美,而是涵括全球范围内的移动运营商成员。其目的是为包括Cellular GERAN&a…

Session使用和原理分析图与实现原理-- 代码演示说明 Session 的生命周期和读取的机制代码分析

目录 Web 开发会话技术 -Session —session 技术 session 基本原理 Session 可以做什么 如何理解 Session Session 的基本使用 session 底层实现机制 原理分析图 代码演示 CreateSession.java 测试 Session 创的机制, 注意抓包分析​编辑 ReadSession.j…

C盘文件删除怎么做?3个方法教你清理C盘!

案例:C盘文件怎么删除? 【我的电脑使用了一年多了,现在C盘已经快满了,想知道C盘里的文件哪些可以进行删除?感谢!】 C盘是计算机系统盘,存储了操作系统和应用程序等重要文件,因此&a…

机器视觉助力锂电行业升级转型—章鱼博士视控一体化解决方案

摘要: 机器视觉在工业领域中充当了模拟人眼的作用,通过其高效的感知能力、精确的检测准确性、可定制性和较低的人工成本等特点,已逐渐成为工业智能化转型的核心功能。在锂电池领域,机器视觉扮演着许多重要的角色,包括生…

使用Docker部署wikitten个人知识库

使用Docker部署wikitten个人知识库 一、wikitten介绍1.wikitten简介2.wikitten特点 二、本地实践环境介绍三、本地环境检查1.检查Docker服务状态2.检查Docker版本 四、部署wikitten个人知识库1.创建数据目录2.下载wikitten镜像3.创建wikitten容器4.查看wikitten容器状态5.检查w…

【unity实战】随机地下城生成4——小地图的制作(2d,3d通用)(含源码)

原理: 新建一个摄像机,用来查看小地图,我们分个图层只能新建的摄像机才可以拍摄到 如果对摄像机和渲染纹理还不理解的,强烈推荐先看完我的另一篇文章 【Unity游戏开发教程】零基础带你从小白到超神14——灯光、摄像机、天空盒、镜子的制作 新建一个摄像机,记得删除Audio …

关于使用el-input-number设置不让删除为空,让强制为最小值1,以及从1删除,但是发现输入框还是没有最小值的问题

哈喽,大家好啊,最近用到了element的el-input-number 计数器 但是有个问题一直困扰我,就是我发现竟然可以删除输入的值,也不会强制改成最小值 但是因为业务这里不允许数量为空的情况,所以我找了很久,终于实…