随着移动互联网的兴起 , 如今的App开发模式都是APP + api模式 , 如图
文章插图
api
由于app和api需要通过网络通信 , api一般都是直接 对外的 , 所以api的访问安全就很重要了 , api没有任何限制 , 或只有很简单的防护措施 , 这是很多新手容易犯的错误 , 一个漏洞 , 就可能让你的系统崩溃 , 数据泄露!
所以网络安全显得越来越重要了 , api安全措施有很多 , 常用的如https、数据加密、url数据签名等方法 。api防刷也属于接口安全的范畴 。
今天就api防刷进行讨论一下:
基本分两种情况
1. 恶意访问
使用工具进行不停的循环访问 , 占用系统资源 , 影响系统正常的对外服务
2. 支付接口、短信发送接口等 ,
这种接口直接会导致企业的损失 , 更要注意 。
魔高一尺道高一丈 , 我们常用措施
1. 根据ip限制访问频率
限制访问 , 访问的时候记录用户IP
写到redis中 , 以ip为键 , 每次访问+1 , 有效期一个小时;
每访问一次就给这个IP+1 , 比如限制1w次 , 加到1W次就拒绝访问 , 直到记录过期 ,
这种方式简单粗暴 , 对于恶意攻击、爬虫抓取很有效果 , 但难免会有误伤 , 影响正常的访问请求 。
2.验证码
一般在需要发送短信的地方 , 需要先输入验证码 , 验证码成功后才发送短信 , 如头条登录 , 先输入手机号 , 点发送会先跳出来下面这个东西 , 验证成功才进行下一步 。
文章插图
验证码
通过验证码 , 可以限制很多的非法的接口访问了 。
3. 限制发送频率
以头条为例 , 发送验证码频率限制为1次/分钟 , 再次发送只能等着
文章插图
频率限制
【几项措施,让你的api不再裸奔】我以前做系统 , 也是对同一手机号发送有限制 , 同一功能的验证码限5次 , 所有功能限10次 , 这样一个手机号就刷不了很多了 。
3. 后端逻辑验证
如果别人通过抓包完全看到你的请求 , 发送了完全相同的参数 , 进行重放攻击 , 如何防范呢?
这种可能访问被人抓了包 , 也可能是用户连续提交 , 签名和 access token这些措施是无效的 。这时就需要server端进行判断了 。
充值支付类的api , 对订单的状态加以判断 , 已处理过的订单 , 不再重复处理 。
增加时间戳 , 对于过期的请求不再处理 。
4. 接口访问监控
一般来说 , 我们会有api访问监控 , 如果一个 ip访问频率异常 , 如果达到一定数量 , 我们可以系统报警通知管理员 , 将损失降到最小 。
单一措施 , 很难完全做到接口安全 , 我们要综合运用多项措施 , 才能做到万无一失!
推荐阅读
- 谁击败了李自成 李自成让谁给灭了
- 迁都洛阳是北魏孝文帝改革的措施之一 北魏孝文帝在迁都洛阳后都进行了哪些改革
- 喝茶会不会让牙齿变黄,经常喝茶牙齿会变黄吗
- 为了让你在网易云听一首歌,后端工程师都做了什么?
- 让手机站起来充电:立式无线充电器选购指南
- 春季如何让孩子长高 注意预防疾病
- 女性健康 七大食谱让女人立马气血两旺
- 图片从RGB模式转换成CMYK模式,让颜色依然鲜艳不减,应该怎么做
- 贾母和宝玉是什么关系 贾母想让宝玉娶谁
- 微信小游戏背后的技术优化,可以让所有小游戏获得更好性能