接口防刷,指的是防止用户过快地访问接口。一般来说,接口开放到公网,都会做防刷处理。那么为什么要进行接口防刷、以及怎么设计来阻止接口防刷呢?接下来我们来聊一聊。
01
为什么设计防刷
那么为什么要进行接口防刷呢?首先,我们要明确一点,那就是接口既然开发出来,目的就是要提供给用户使用,让用户能够访问到一些数据和资源。但会有不同的行为,如下图所示。
虽然正常访问接口的用户占大部分,但还是存在部分用户会使用单服务器或多服务器进行非正常访问,比如使用程序调用接口。他们的请求可能会大量占用服务器资源,导致正常请求无法及时获得响应。最常见的例子就是各种抢票软件,这些软件都是通过更频繁地请求接口来提高成功率的。
02
接口防刷的方法
那么我们有哪些方法来实现防刷呢?一般我们要从单服务器请求和多服务器请求来进行分类。单服务器,一般指的是那些需要登录认证或者API令牌的接口,他们由于和客户端强相关,所以可以划分到单服务器的分类中。
单服务器防刷
1)IP或SessionId等会话标识访问次数限制。通过设置单位时间内IP访问次数等的阈值来进行请求次数限制,是最常见的思路。即设置短时黑名单。
2)Cookie超时。一般来说,使用程序模仿用户请求时都会使用Cookie。设置用户Cookie的超时时间,并在Cookie超时时返回正常请求出错类似的错误信息,可以给刷接口增加难度。
3)请求间隔。设置严格的请求间隔,时间间隔不足时阻止请求。这种策略比较生硬,一般不会使用。
多服务器防刷
1)使用验证码。这里的验证码,指的是多种形式的验证码,包括滑动横条、字符识别、算式计算等。这个策略是直接增加了客户端的操作时间,是最直接有效的策略。但在某种程度上会影响用户的使用体验。
个人知识有限,欢迎您在留言区补充其他策略。
——————–往期精彩——————–
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/234632.html