zoukankan      html  css  js  c++  java
  • 一次非核心接口(信息提示类)被刷引发的思考

    自从上次接入钉钉监控后。今天早上起来发现测试环境 公告信息接口 凌晨3点100多条NPE告警~

    第一个反应接口被异常访问:这个接口没有定时任务等任何调用的可能~

    果然查看ZIPKIN发现了类似如下的请求:

    确定问题后,查看代码逻辑,果然该服务的所有接口都没有进行auth2校验,但是业务需要部分接口不能权限校验(例如:不登录就访问) 

    解决步骤:

      1、无须暴露的接口增加auth2校验

      2、日志中增加IP地址的打印,方便查看日志时候显示请求来源

    反思:

     项目中由于业务需要(不登录就访问)直接访问的接口,如何进行有效控制?

     1、调用方增加签名等合法性校验(本质说和auth2一种方式)

          优点:安全性高

          缺点:简单接口确增加了调用端和接收端交互的复杂性

     2、网关增加请求控制(IP的黑白名单。IP访问次数等)

         优点:统一的处理,针对业务更灵活可配置~

         缺点:实现更复杂

    那么网关中IP访问限制和黑白名单如何做,需要解决以下几个问题:

    1、如何识别正常访问和异常访问?(一段时间同一接口访问次数太多?高峰期和低峰期是否不同?

    2、IP访问异常后拒绝策略是什么?(一段时间访问访问异常接口不能访问?高峰期和低峰期是否不同?

    3、是否不同业务的识别方法和拒绝策略不一样?(有些接口访问频率高,有些访问频率低?

    4、有些业务是否之后IP在白名单中才能访问?(只对第三方提供的接口?

    5、IP访问异常的通知?(请求被识别为异常是否通知到服务维护人员?)

  • 相关阅读:
    Asp.net实现URL重写
    IHttpModule不起作用的两个原因
    从客户端中检测到有潜在危险的 request.form值[解决方法]
    PHP $_SERVER详解
    string.Format 格式化日期格式
    图解正向代理、反向代理、透明代理
    Javacard 解释器怎样在API类库中找到源文件调用的类、方法或者静态域?
    API
    指令集
    机器码与字节码
  • 原文地址:https://www.cnblogs.com/mxmbk/p/9569438.html
Copyright © 2011-2022 走看看