日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

PHP应对洪水般的恶意访问接口 访问冲击

發(fā)布時間:2024/9/19 php 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP应对洪水般的恶意访问接口 访问冲击 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 / 驗證碼(最簡單有效的防護(hù)),采用點觸驗證,滑動驗證或第三方驗證碼服務(wù)、

2 / 歸屬地,檢測IP所在地是否與手機(jī)號歸屬地匹配;IP所在地是否是為常在地
3 / 可疑用戶,對于可疑用戶要求其主動發(fā)短信(或其他主動行為)來驗證身份

4 / 黑名單用戶,對于黑名單用戶,限制其操作,API接口直接返回success,1可以避免浪費資源,2混淆黑戶判斷

5 /??https,token

6 / 頻率,限制同設(shè)備,同IP等發(fā)送次數(shù),單點時間范圍可請求時長

?

設(shè)置頻率

public function checkRequest($ip){#一分鐘接口調(diào)用只能10次$redis= new \Redis();$redis->open('xxx',6379);//服務(wù)器連接的Ip與端口號$redis->auth('xxx');//redis服務(wù)的密碼$redis->select(1);//選擇連接的redis,默認(rèn)redis的庫有16個 // $redis->flushAll();exit;//清空redis的所有庫$lock_time=$redis->zScore('user_list',$ip);//返回有序集中key中成員member的scoreif(time()-$lock_time<3000){return 1;//在黑名單中}else{$redis->zRem('user_list',$ip);//redis中zRem命令用于移除有序集合中的一個或者是多個成員,不存在的成員將被忽略,當(dāng)key存在但是不是有序集合類型是,返回一個錯誤}#記錄訪問次數(shù)$ip_value=$redis->get($ip);//get命令用于獲取指定的keyz值,如果key值不存在返回nullif(!$ip_value){#設(shè)置key自增$redis->incr($ip);//將key中存儲的數(shù)字值增1#設(shè)置過期時間為3000秒$redis->expire($ip,3000);//給key值設(shè)置生存時間}else{$redis->incr($ip);}#集合里邊的元素不會重復(fù) 字符串#把ip當(dāng)做key 存入redis 存5分鐘if($ip_value>10){#使用有序集合$redis->zAdd('user_list',time(),$ip);//命令用于將一個或者是多個于是怒以及分?jǐn)?shù)值加入到有序集合中return 2;//調(diào)用接口頻繁}}

?

總結(jié)

以上是生活随笔為你收集整理的PHP应对洪水般的恶意访问接口 访问冲击的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。