恶意提交攻击

1.拦截且修改:客户端发送到服务端接口的请求被第三方拦截,然后修改数据,再提交给客户端执行

例如:

  1. 客户端发送了将username重置为“小明”的请求
  2. 第三方拦截后修改为username重置为"小红"
  3. 然后提交给服务器执行
  4. 服务器认证了用户身份后(cookie或token都是客户端发出的,因此能通过认证)
  5. 那么客户端的username就被修改为“小红”

2.拦截不修改,重复提交攻击

例如:

  1. 客户端发送一个更新user表的请求
  2. 第三方拦截
  3. 然后短时间内复制重复提交
  4. 服务器认证后不断往数据库写数据

解决方案--签名:对客户端发来的请求进行签名

1.防篡改

  1. 客户端提交请求之前,先对自己请求的参数全部进行拼接加密得到一个加密字符串sign
  2. 请求参数加上sign,然后再发送给服务器
  3. 服务器将参数获取后也进行相同的拼接加密得到自己的sign
  4. 比较与客户端发来的sign是否相同
  5. 不相同则是被第三方修改过的,拒绝执行

关键:

  1. 第三方不知道加密方式和请求参数拼接规则,而客户端与服务器是知道的,因此第三方不知道修改参数后如何生成与服务器生成相同的sign
  2. 只要请求修改了一点点加密得到的就是不同的签名

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

接口服务数据被劫包,如何防止数据恶意提交(道乐)相关推荐

  1. 服务端用idhttpserver来接收xml数据包

    多个客户端同时向一个服务端发送xml数据包         服务端用idhttpserver来接收xml数据包,现在发现服务端程序经常莫名其妙死掉!     没有任何错误提示,直接关闭!接收数据量比较 ...

  2. python财经数据接口包_Tushare 财经数据接口包介绍(Python)

    最近在研究Python的量化交易实现,因为需要股票相关的金融数据,自己动手爬,实在太麻烦了. 于是在网上找找有没现成的数据接口,好做数据分析,发现了这个好东西,分享一下. Tushare 介绍: Tu ...

  3. java 模块分离部署_GitHub - yangjiu/Mis: 模块接口服务,如何在一个模块内维护其对外暴露的接口(包括打包发布),而不是把接口和接口实现分离到两个不同的模块?...

    MIS 模块接口服务(Module Interface Service) MIS主要解决的问题是如何在一个模块内维护其对外暴露的接口(包括打包发布),而不是把接口和接口实现分离到两个不同的模块. Us ...

  4. 外部jar包_大数据系列之PySpark读写外部数据库

    本文以MySQL和HBASE为例,简要介绍Spark通过PyMySQL和HadoopAPI算子对外部数据库的读写操作 1.PySpark读写MySQL MySQL环境准备参考"数据库系列之M ...

  5. SpringBoot——实现WebService接口服务端以及客户端开发

    文章目录 一.服务端代码开发 1.pom依赖 2.接口类 3.接口实现类 4.webservice配置文件 2.客户端开发 (1)pom依赖 (2)封装客户端方法clientUtil (3)调用接口类 ...

  6. Wireshark数据包分析之数据包信息解读

    *此篇博客仅作为个人笔记和学习参考 数据包概况 Frame:物理层的数据帧概况; EthernetⅡ:数据链路层以太网帧头部信息; Internet Protocol Version 4:互联网层IP ...

  7. ASP.NET Core WebApi构建API接口服务实战演练

    一.ASP.NET Core WebApi课程介绍 人生苦短,我用.NET Core!提到Api接口,一般会想到以前用到的WebService和WCF服务,这三个技术都是用来创建服务接口,只不过Web ...

  8. 服务安全:如何保证服务器不断电数据不丢失?

    服务安全最重要的是数据安全,大多数灾备都是保证服务高可用和数据安全性. 目录 异地多活灾备 两地容灾切换方案 多城异地多活 单元城市级故障 中心城市级故障 UPS UPS组成 UPS服务商 务不断电方 ...

  9. 计算机网络协议——OSI、TCP数据、IP数据包、Ethernet 数据包

    计算机网络 欢迎关注公众号二月鸟的博客. 1.协议体系介绍 1.1 五层协议 应用层 :为特定应用程序提供数据传输服务,例如 HTTP.DNS 等.数据单位为报文. 传输层 :为进程提供通用数据传输服 ...

最新文章

  1. java 使用new新建一个对象时的操作过程
  2. [洛谷P2057][SHOI2007]善意的投票
  3. Cannot resolve method addSource
  4. 安卓APP_ 布局(5) —— GridLayout网格布局
  5. tftp 服务器 ip_360Stack裸金属服务器部署实践
  6. sql语句优化之一:尽量使用索引避免全表扫描
  7. c语言if语句教学设计,c语言if语句教学设计.pdf
  8. 第一 二章 计算机基础知识,[精品]第二章-计算机基础知识.doc
  9. Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!
  10. IIS6.0 + openssl执行版 + Windows2003--配置篇
  11. python有哪几种类型转换方式_Python 中各种时间类型的转换
  12. JAVA程序提取PDF中间页
  13. 谷歌浏览器刷新快捷键
  14. html适应不同的分辨率,css如何适应不同分辨率?
  15. 海定计算机计算标准差,标准差怎么算公式(标准差的计算例题)
  16. LoRaWAN介绍13 SX1301
  17. Struts2 官方教程之Struts Tags(六)——Generic Tags(Control Tags )
  18. 吉莱微电子IPO被终止:曾拟募资8亿 李建新父子是大股东
  19. 计算机控制系统的五种类型,计算机控制系统习题(1-5章
  20. DAL、DAO、ORM、Active Record讲解

热门文章

  1. 大数据信息资料采集:商品促营销活动海报设计模板八爪鱼采集规则
  2. 如何让图片按比例响应式缩放、并自动裁剪的css技巧
  3. 计算机辅助翻译风格指南,软件培训指南英汉翻译实践报告
  4. 西门子S7-1200 PID温度控制程序,PID参数经过预调节和精确调节之后得出,程序采用博图V15高级版编写
  5. 苹果原壁纸高清_119期 | 欧美经典电影拼接壁纸
  6. 风雨飘摇二十年,MMO游戏还有春天吗?
  7. 学科前沿:肿瘤的表观遗传学(DNA甲基化)及标志物研究应用|易基因
  8. stm32IO口八种工作模式详细解析(附原理图)
  9. ibm服务器维修 代码ed,IBM服务器安装全过程
  10. [Excel]单元格