接口服务数据被劫包,如何防止数据恶意提交(道乐)
恶意提交攻击
1.拦截且修改:客户端发送到服务端接口的请求被第三方拦截,然后修改数据,再提交给客户端执行
例如:
- 客户端发送了将username重置为“小明”的请求
- 第三方拦截后修改为username重置为"小红"
- 然后提交给服务器执行
- 服务器认证了用户身份后(cookie或token都是客户端发出的,因此能通过认证)
- 那么客户端的username就被修改为“小红”
2.拦截不修改,重复提交攻击
例如:
- 客户端发送一个更新user表的请求
- 第三方拦截
- 然后短时间内复制重复提交
- 服务器认证后不断往数据库写数据
解决方案--签名:对客户端发来的请求进行签名
1.防篡改
- 客户端提交请求之前,先对自己请求的参数全部进行拼接加密得到一个加密字符串sign
- 请求参数加上sign,然后再发送给服务器
- 服务器将参数获取后也进行相同的拼接加密得到自己的sign
- 比较与客户端发来的sign是否相同
- 不相同则是被第三方修改过的,拒绝执行
关键:
- 第三方不知道加密方式和请求参数拼接规则,而客户端与服务器是知道的,因此第三方不知道修改参数后如何生成与服务器生成相同的sign
- 只要请求修改了一点点加密得到的就是不同的签名
2.防重放
(1)客户端的请求参数上加一个请求时间timestamp
原理:服务器获取请求的timestamp,然后比较自身系统时间,如果相差超过设定时间就是超时,该请求无效
作用:就算第三方截取了该请求,它也只能在设定时间内进行重放攻击
(2)客户端的请求参数上加一个随机字符串string
原理:服务端获取请求的随机字符串string,然后查看是否在设定时间内别的请求使用过该string,被使用过就判定无效
作用:加上timestamp,就造成短时间内一个请求只能使用一次,因为就算请求被拦截,它请求成功一次后,第二次复制重放时就因为随机字符串被使用而被拒绝
----------------------------------------以前的答案---------------------------------------------
// 1.使用session验证身份(查看id与session中id是否一致)
// 2.对id进行加密处理等(如果id被恶意修改,篡改者不知道加密方法则服务端可查证)
// 3.设置提交的间隔时间限制来防止重复提交
// 4.在session中设置提交标志(每一次服务器将表单呈现给客户端前设置一个标志,然后客户端提交表单时再验证该标志)
转载于:https://www.cnblogs.com/ming-szu/p/8926179.html
接口服务数据被劫包,如何防止数据恶意提交(道乐)相关推荐
- 服务端用idhttpserver来接收xml数据包
多个客户端同时向一个服务端发送xml数据包 服务端用idhttpserver来接收xml数据包,现在发现服务端程序经常莫名其妙死掉! 没有任何错误提示,直接关闭!接收数据量比较 ...
- python财经数据接口包_Tushare 财经数据接口包介绍(Python)
最近在研究Python的量化交易实现,因为需要股票相关的金融数据,自己动手爬,实在太麻烦了. 于是在网上找找有没现成的数据接口,好做数据分析,发现了这个好东西,分享一下. Tushare 介绍: Tu ...
- java 模块分离部署_GitHub - yangjiu/Mis: 模块接口服务,如何在一个模块内维护其对外暴露的接口(包括打包发布),而不是把接口和接口实现分离到两个不同的模块?...
MIS 模块接口服务(Module Interface Service) MIS主要解决的问题是如何在一个模块内维护其对外暴露的接口(包括打包发布),而不是把接口和接口实现分离到两个不同的模块. Us ...
- 外部jar包_大数据系列之PySpark读写外部数据库
本文以MySQL和HBASE为例,简要介绍Spark通过PyMySQL和HadoopAPI算子对外部数据库的读写操作 1.PySpark读写MySQL MySQL环境准备参考"数据库系列之M ...
- SpringBoot——实现WebService接口服务端以及客户端开发
文章目录 一.服务端代码开发 1.pom依赖 2.接口类 3.接口实现类 4.webservice配置文件 2.客户端开发 (1)pom依赖 (2)封装客户端方法clientUtil (3)调用接口类 ...
- Wireshark数据包分析之数据包信息解读
*此篇博客仅作为个人笔记和学习参考 数据包概况 Frame:物理层的数据帧概况; EthernetⅡ:数据链路层以太网帧头部信息; Internet Protocol Version 4:互联网层IP ...
- ASP.NET Core WebApi构建API接口服务实战演练
一.ASP.NET Core WebApi课程介绍 人生苦短,我用.NET Core!提到Api接口,一般会想到以前用到的WebService和WCF服务,这三个技术都是用来创建服务接口,只不过Web ...
- 服务安全:如何保证服务器不断电数据不丢失?
服务安全最重要的是数据安全,大多数灾备都是保证服务高可用和数据安全性. 目录 异地多活灾备 两地容灾切换方案 多城异地多活 单元城市级故障 中心城市级故障 UPS UPS组成 UPS服务商 务不断电方 ...
- 计算机网络协议——OSI、TCP数据、IP数据包、Ethernet 数据包
计算机网络 欢迎关注公众号二月鸟的博客. 1.协议体系介绍 1.1 五层协议 应用层 :为特定应用程序提供数据传输服务,例如 HTTP.DNS 等.数据单位为报文. 传输层 :为进程提供通用数据传输服 ...
最新文章
- java 使用new新建一个对象时的操作过程
- [洛谷P2057][SHOI2007]善意的投票
- Cannot resolve method addSource
- 安卓APP_ 布局(5) —— GridLayout网格布局
- tftp 服务器 ip_360Stack裸金属服务器部署实践
- sql语句优化之一:尽量使用索引避免全表扫描
- c语言if语句教学设计,c语言if语句教学设计.pdf
- 第一 二章 计算机基础知识,[精品]第二章-计算机基础知识.doc
- Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
- IIS6.0 + openssl执行版 + Windows2003--配置篇
- python有哪几种类型转换方式_Python 中各种时间类型的转换
- JAVA程序提取PDF中间页
- 谷歌浏览器刷新快捷键
- html适应不同的分辨率,css如何适应不同分辨率?
- 海定计算机计算标准差,标准差怎么算公式(标准差的计算例题)
- LoRaWAN介绍13 SX1301
- Struts2 官方教程之Struts Tags(六)——Generic Tags(Control Tags )
- 吉莱微电子IPO被终止:曾拟募资8亿 李建新父子是大股东
- 计算机控制系统的五种类型,计算机控制系统习题(1-5章
- DAL、DAO、ORM、Active Record讲解
热门文章
- 大数据信息资料采集:商品促营销活动海报设计模板八爪鱼采集规则
- 如何让图片按比例响应式缩放、并自动裁剪的css技巧
- 计算机辅助翻译风格指南,软件培训指南英汉翻译实践报告
- 西门子S7-1200 PID温度控制程序,PID参数经过预调节和精确调节之后得出,程序采用博图V15高级版编写
- 苹果原壁纸高清_119期 | 欧美经典电影拼接壁纸
- 风雨飘摇二十年,MMO游戏还有春天吗?
- 学科前沿:肿瘤的表观遗传学(DNA甲基化)及标志物研究应用|易基因
- stm32IO口八种工作模式详细解析(附原理图)
- ibm服务器维修 代码ed,IBM服务器安装全过程
- [Excel]单元格