对于接口的安全性测试,这几点你掌握了吗?

01、接口防刷

1.为什么会有人要刷接口?
  • 牟利:黄牛在 12306 网上抢票再倒卖。

  • 恶意攻击竞争对手:如短信接口被请求一次,会触发几分钱的运营商费用,当量级大了也很可观。

  • 压测:用apache bench 做压力测试。

2.什么行为判定为刷接口?
  • 次数多

  • 频率频繁,可能 1 秒上千次

  • 用户身份难以识别:可能会在刷的过程中随时换浏览器或者 ip

3.如何判断用户粒度

根据当前网页

  • 缺点:没有任何意义,一刷新页面用户的身份就变了

根据session

  • 缺点:当用户手动清除 cookie 的时候即失效

根据ip

  • 优点:伪造成本高

  • 缺点:要考虑一个公司、一个小区的人一般会共享一个 ip,所以适当的要放宽对单一 ip 的请求限制

ip 信息是存在请求头里的,而 https 对请求本身做了加密,可以防止 ip 信息被伪造或篡改。所以推荐服务器采用https传输。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

02、如何处理恶意请求

1. 业务逻辑上拒绝该用户参与
  • 例如限制用户登录,用户必须达到一定条件才可以(任务限制,金额限制,参与次数限制)

2.奖励发放的限制
  • 奖励每天发放次数限制,奖励每天发放总量限制,用户每天参与次数限制,用户每天获取总量限制

3.IP频率限制

通过 memcached 和 redis 都有成熟的方案。

Memcached教程:

https://www.runoob.com/memcached/memcached-tutorial.html

4. 验证码&短信限制

可以通过要求用户输入验证码or短信验证码验证用户真实性,但是也要保证短信接口不会被刷。

  • 优点:可以精准识别请求是真人还是机器发出的,二次筛选出真正的用户

  • 缺点:不够人性化,用户操作时间长、体验差

5.用户权限判断

基础的用户行为分析,就是结合业务逻辑,在代码实现层面对进行完善的用户权限判断。

从代码层次限制用户

6.防范XSS、CSRF、SQL注入攻击

这是常见的WEB接口安全防范手段,XSS、CSRF、SQL注入,对参数过滤转义,表单验证等等。

7.人工干预

以上方法需要结合使用才能提高安全和破解的难度,单独使用都有很容易破解的方法,除此之外,人工干预也是很重要的,一定要在后台观察数据,及时发现异常的数据并排查隐患。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值