php 接口防刷
·
通过redis集合方式实现接口防刷,进入黑名单
//接口防刷
public function InterfaceBrush(){
$redis = new \Redis();
$redis->connect('127.0.0.1' , '6379', '' );
if(time() - $redis->zScore('black_list',$_SERVER['REMOTE_ADDR']) < 15){//小于15秒
return json_encode(['code' => 303, 'msg' => '接口访问已达到上限'],JSON_UNESCAPED_UNICODE);
}
if ($redis->get($_SERVER['REMOTE_ADDR'])) {
if ($redis->get($_SERVER['REMOTE_ADDR']) < 30) {//小于30次
$redis->incr($_SERVER['REMOTE_ADDR']);
} else {
$redis->zAdd( 'black_list' , time() ,$_SERVER['REMOTE_ADDR']);
return json_encode(['code' => 304, 'msg' => '接口访问已达到上限'],JSON_UNESCAPED_UNICODE);
}
} else {
$redis->set($_SERVER['REMOTE_ADDR'], 1, 10);//有效时间为10秒
}
}
网易易盾是国内领先的数字内容风控服务商,依托网易二十余年的先进技术和一线实践经验沉淀,为客户提供专业可靠的安全服务,涵盖内容安全、业务安全、应用安全、安全专家服务四大领域,全方位保障客户业务合规、稳健和安全运营。
更多推荐
所有评论(0)