【工作】客服系统防刷的分享

雨中笑 经验 576热度

简介这是今天在工作中遇到的恶意刷获取账号信息接口的事件及如何做防刷的思路

1、今天发现有人在刷公司的客服系统的接口,绕过了ip检测采用了代理ip访问接口,随后我就上线了一个防刷的功能,在接口处加了签名验证,每个请求过来的签名,都要验证下签名是否正确,并保存5分钟,且只能使用一次,通过后再检测登录信息是否在黑名单,一切成功才可以正常访问

http://kf.3k.com/new-gm/index.html#/ 


2、为增加别人刷添加数据的接口难度和减少代码的改动,对ID加密,采用md5加密后排序在加上这个id,给前端再由前端给回后通过检查这个id是否正确才添加数据

const KEY = "sds*&^*%";
/**
* 单个数据加密
* @author FJL<171843306@qq.com>
* @datetime 2020-07-29
* @param $id
* @return string
*/
public static function encrypt($id)
{
$str = md5($id.self::KEY);
$arr = str_split($str);
asort($arr);
$res = implode('',$arr)."__".$id;
return $res;
}

/**
* 解密获得单个数据
* @author FJL<171843306@qq.com>
* @datetime 2020-07-29
* @param $id
* @return int
*/
public static function decrypt($code)
{
$data = explode('__',$code);
if(!$data || !isset($data[1])){
return 0;
}
$str = md5($data[1].self::KEY);
$arr = str_split($str);
asort($arr);
$res = implode('',$arr);
if($res == $data[0]){
return $data[1];
}
return 0;
}


之前在做哥伦布项目的时候我也有去爬取别人的游戏数据,像七麦那些需要登录后并破解签名才能爬更多的数据,都是先模拟登录和反推签名这些过程来破解的,感觉网站的某些接口是不能完全禁止别人刷只能在刷的过程中增加一些难度,比较常见的是增加输入的验证码和手机邮箱发送验证那些,但是在某些场合下这些验证码不能使用,在那些特别的场景下,增加签名验证和数据加密就显得比较重要了。


很赞哦!(3)

本文阅读量 2108发布于 2020年7月29日

您的访问IP 3.141.12.209最早于 2024年5月14日 8时08分09秒 阅读过本文 为本文提供了 1 热度 1 阅读量

文章评论
回帖