/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))
保存这个请求的手机信息到黑名单;
网友评论