获取freewifi密码业务分析

   /sdk/ce7/aaz   /查询wifi哪些是freewifi 接口;

会被拦截器拦截;根据当前的IP查询下是不是 白名单IP 如果是的话  就直接放行;

不是的话 会记录到redis 记录访问次数;

查询wifi是不是freewifi  同一个IP每天限制请求次数 1000次

其他请求 同一个IP  限制   200次;   

防止被爬虫;


1   查询哪些wifi是freewifi :

      请求body是呗加密的;需要先解密处理;

      装成body体;

         getFreewifiList业务处理:

        1.1  黑名单校验:securityService2.checkRedisBlackListForE

         黑名单校验逻辑:首先走redis获取黑名单的列表;

  1.1.1 判断getPhoneMessage 是不是空 是的话就加黑名单;保存ip进黑名单;redis  和数据库都会存 ;数据库有了就更新更新时间;

1.1.2 手机信息不为空;判断getAndroidId 为空不;不为空;查下redisg黑名单中有没有这个设备id;有就退出不让获取;

                                     判断设备ID 是不是为空;不为空就查下黑名单;有的话退出;

1.1.3 当前安装包是否被禁用了    如果安装包不存在 ,直接判断是非法请求  (目前被注释了没有生效)

1.1.4  判断用户,ip 是否 存在黑名单


1.1.5 如果不存在sdk版本信息为空  直接认定非法请求.加入黑名单  (IP  设备ID 都会进  安卓ID)

1.1.6  如果sdk版本信息在黑名单中也 直接退出

以上条件都不符合 则通过黑名单校验 返回true

2.1 校验token;

2.1.1 // 根据包名 选择保存wifi的逻辑  如果是允许的包名 不用校验token 直接通过;com.cleanmaster.security,com.infreewifi.cct

2.1.2   校验token redis   如果token信息或者包名为空返回 nullT =-3(token空)  或者nullP =-4(包名空)

                              redis  根据包名 匹配token  如果匹配相等 就是成功; redis 没有就去数据库匹配; tbl_token_mail 这张表


3.1  根据bssid  匹配对应的表名;组装查询SQL 查询freewifi 查到后就 返回数据




SELECT *  FROM tbl_black WHERE keyword = #{keyword}

传关键字  保存黑名单关键字到黑名单数据库(saveBlackList(PhoneDetail ph,HttpServletRequest request,String info))

保存这个请求的手机信息到黑名单;

你可能感兴趣的:(获取freewifi密码业务分析)