接口安全问题

借贷平台产品被接口攻击。

一。现象:管理系统后台不能访问,请求超时,APP不能登录,请求超时。

二。该接口被攻击的原因:

  1.权限检查没有做到位。权限检查分为通行权限和数据权限。这次接口攻击的操作者注册APP后,登录取得token,然后利用token获取通行权限。但是在接口里面没有对访问接口的用户做数据权限检查,即没有检查是否有权限查看该数据。

  2.自增Id问题。因为是系统重构,而旧系统中的数据库表主键都是自增id。这个id就给攻击者很轻松的拿到数据的主键,再模拟请求,获取数据。自增id,优点是有,但是缺点也很多,尤其是2C的系统,流量较大,数据较重要,最后走向分库分表,自增id就会有很大的 坑。以前的旧系统业务id关联较多,又因为重构时间紧,就没有对已有数据做修改。但是新产生的主键,我们都按照雪花算法生成的,方便以后维护。

三。接口被攻击后怎么处理的:

  1:对该接口的访问频次做了限定,如下图

                                             

  2:锁定用户IP,由于日志输出较全,所以很快确定了被攻击的接口和攻击人的ip。马上锁定该ip,限制访问。

  3:修改接口。这个是后续处理,重新设计了接口的参数,增加了权限检查,对出参做了脱敏处理。

四。如何确定自己的接口被攻击?

这次的事故是因为攻击人很猖狂,在下午工作时间发起攻击,而且很暴力,不求隐蔽,导致系统出现网络请求大量拥堵,系统卡顿,最后被发现。但是有很多攻击都是很隐蔽,而且攻击时段都是在凌晨时段发生的,用户活跃性低,系统不会轻易发生较大稳定事故。攻击者无声无息的偷走你的数据。针对这种情况,就要根据你的日志输出来确定了。要养成查看日志的习惯,统计前一天接口访问频次较多的ip和接口。根据实际情况确定是否被攻击。这种统计是大概统计就可以发现,也可以写系统功能,专门分析日志文件,精确统计分析接口攻击的风险。

五。如何预防接口攻击。

开发人员要在接口设计,实现的过程中把自己放在攻击者的角度,设身处地的想想如果你想要通过这个接口获取你的数据会怎么做。当然了,最基本的手段就是,ip访问限制,权限检查(包括通行证和数据权限),数据脱敏处理等。这些都要根据实际业务进行处理。

 

posted @ 2019-06-05 15:59  LittleAnts  阅读(1487)  评论(0编辑  收藏  举报