PHP限制访问频率,简易防止CC攻击_dnf手游脚本
发布时间:2026-07-22 20:39:27 作者:玩站小弟
我要评论
PHP限制访问频率,简易防止CC攻击_dnf手游脚本 介绍:由于自己使用API经常被频繁请求,制访止还偶尔被CC攻击,问频找到一套防止非正常高频dnf手游破解卸刃棍...。
介绍 :
由于自己使用API经常被频繁请求,制访止还偶尔被CC攻击 ,问频找到一套防止非正常高频率请求和防止一般CC攻击的率简PHP源码。
优势 :
- 简易易用 ,易防无论你懂不懂PHP开发,制访止只要会复制粘贴就行。问频dnf手游脚本
- Memcached内存缓存技术,率简高性能,易防高并发 。制访止
- 精准无误,问频0误封。率简
- 能防护QPS10000以内的易防CC攻击,校验机器配置,制访止有可能更高。问频
- 拥穿着范围较广 ,率简dnf手游破界石任务怎么做直接你网站拥穿着PHP就行。
- 源码简易 ,可自行修改,可以套自己喜欢的前端模板主题 。
要求:
- PHP版本 ≥ 7.2
- PHP需安装Memcached扩展
- Memcached ≥1.6
使用计划:
以下开源代码增补到你网站核心文件中
,相当于你网站任何页面城市引用的一个文件。类似于
:config.php
或者根据你的dnf手游破解卸刃棍程序逻辑增补到需要防CC的PHP文件头部即可
。
源码:
<span class="php"><span class="hljs-meta"><?php</span><span class="hljs-comment">/*** 防止频繁请求 ,防范CC攻击 ,拥穿着上万并发* 原创作家 :小伟* 转载请保留版权 ,谢谢 !*/</span>ini_set(<span class="hljs-string">"display_errors"</span>, <span class="hljs-string">"Off"</span>);error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);extension_loaded(<span class="hljs-string">memcached</span>)<span class="hljs-keyword">or</span><span class="hljs-keyword">die</span>(<span class="hljs-string">memcached扩展未安装!</span>);$logPath = $_SERVER[<span class="hljs-string">DOCUMENT_ROOT</span>] . <span class="hljs-string">/waf/waf.log</span>; <span class="hljs-comment">//日志记录文件保存路径 ,$_SERVER[DOCUMENT_ROOT]是dnf手游破解器网站根目录$fileht = $_SERVER[<span class="hljs-string">DOCUMENT_ROOT</span>] . <span class="hljs-string">/waf/ban.log</span>; <span class="hljs-comment">//被拉黑IP记录文件保存路径<span class="hljs-keyword">if</span>(!file_exists($logPath)){@mkdir($_SERVER[<span class="hljs-string">DOCUMENT_ROOT</span>] . <span class="hljs-string">/waf/</span>, <span class="hljs-number">0777</span>, <span class="hljs-keyword">true</span>);@file_put_contents($logPath, <span class="hljs-string"></span>);@file_put_contents($fileht, <span class="hljs-string"></span>);}$allowtime = <span class="hljs-number">2</span>; <span class="hljs-comment">//防刷新时间(秒)$allownum = <span class="hljs-number">5</span>; <span class="hljs-comment">//防刷新次数(比如2秒5次 ,超过就警告)$allowRefresh = <span class="hljs-number">10</span>; <span class="hljs-comment">//在此警告次数之后拉黑IP$bantime = <span class="hljs-number">600</span>; <span class="hljs-comment">//封禁时间 ,超时自动解封(秒)$ip = $_SERVER[<span class="hljs-string">HTTP_X_FORWARDED_FOR</span>] ? $_SERVER[<span class="hljs-string">HTTP_X_FORWARDED_FOR</span>]: $_SERVER[<span class="hljs-string">REMOTE_ADDR</span>];$uri = $_SERVER[<span class="hljs-string">PHP_SELF</span>];$cache = <span class="hljs-keyword">new</span>Memcached();$cache->addServer(<span class="hljs-string">127.0.0.1</span>, <span class="hljs-string">11211</span>)<span class="hljs-keyword">or</span><span class="hljs-keyword">die</span>(<span class="hljs-string">memcached接合出局!</span>);$inban = $cache->get(<span class="hljs-string">waf-ban-</span> . $ip);<span class="hljs-keyword">if</span>($inban){header(<span class="hljs-string">"HTTP/1.1 403 Forbidden"</span>);<span class="hljs-keyword">exit</span>(<span class="hljs-string">403 Forbidden 非法访问
你的请求似乎不符合常理 ,已被服务器防火墙拦截 ,如有疑问请联系管理员QQ :XXXXXX如果你在开发测试过程中超频被封IP ,请等待
</span> . ($bantime / <span class="hljs-number">60</span>) . <span class="hljs-string">分钟后自动解封你的IP:</span> . $ip . <span class="hljs-string"></span>);}$wafarr = $cache->get(<span class="hljs-string">waf-</span> . $ip);<span class="hljs-keyword">if</span>(!$wafarr){$wafarr = [<span class="hljs-string">path</span> => $uri,<span class="hljs-string">time</span> =>time() + $allowtime,<span class="hljs-string">sum</span> =><span class="hljs-number">1</span>,];$cache->set(<span class="hljs-string">waf-</span> . $ip, $wafarr, time() + $allowtime);}<span class="hljs-keyword">else</span>{<span class="hljs-keyword">if</span>($wafarr[<span class="hljs-string">sum</span>]> $allownum){$wafsum_arr = $cache->get(<span class="hljs-string">waf-sum-</span> . $ip);<span class="hljs-keyword">if</span>(!$wafsum_arr){$wafsum_arr = [<span class="hljs-string">sum</span> =><span class="hljs-number">1</span>,];$cache->set(<span class="hljs-string">waf-sum-</span> . $ip, $wafsum_arr, time() + $bantime);}<span class="hljs-keyword">else</span>{<span class="hljs-keyword">if</span>($wafsum_arr[<span class="hljs-string">sum</span>]> $allowRefresh){$cache->set(<span class="hljs-string">waf-ban-</span> . $ip, <span class="hljs-number">1</span>, time() + $bantime);file_put_contents($fileht, $ip . <span class="hljs-string">"n"</span>, FILE_APPEND);}<span class="hljs-keyword">else</span>{$wafsum_arr[<span class="hljs-string">sum</span>]++;$cache->set(<span class="hljs-string">waf-sum-</span> . $ip, $wafsum_arr, time() + $bantime);}}file_put_contents($logPath, $ip . <span class="hljs-string">--</span> . date(<span class="hljs-string">Y-m-d H:i:s</span>, time()) . <span class="hljs-string">--</span> . $uri . <span class="hljs-string">"n"</span>, FILE_APPEND);header(<span class="hljs-string">"HTTP/1.1 403 Forbidden"</span>);<span class="hljs-keyword">exit</span>(<span class="hljs-string">"请求频率QPS超过限制,请酌情访问,dnf手游破解版无限点券最新版多次提醒后会封禁IP !"</span>);}<span class="hljs-keyword">else</span>{$wafarr[<span class="hljs-string">sum</span>]++;$cache->set(<span class="hljs-string">waf-</span> . $ip, $wafarr, $wafarr[<span class="hljs-string">time</span>]);}}</span>/*** 防止频繁请求,防范CC攻击,拥穿着上万并发* 原创作家:小伟* 转载请保留版权,谢谢!*/ini_set("display_errors",dnf手游私服破解"Off");error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);extension_loaded(memcached) ordie(memcached扩展未安装 !); $logPath = $_SERVER[DOCUMENT_ROOT] . /waf/waf.log; //日志记录文件保存路径,$_SERVER[DOCUMENT_ROOT]是网站根目录 $fileht = $_SERVER[DOCUMENT_ROOT] . /waf/ban.log; //被拉黑IP记录文件保存路径if (!file_exists($logPath)) { @mkdir($_SERVER[DOCUMENT_ROOT] . /waf/, 0777, true); @file_put_contents($logPath, ); @file_put_contents($fileht, );} $allowtime = 2; //防刷新时间(秒) $allownum = 5; //防刷新次数(比如2秒5次 ,超过就警告) $allowRefresh = 10; //在此警告次数之后拉黑IP $bantime = 600; //封禁时间,超时自动解封(秒) $ip = $_SERVER[HTTP_X_FORWARDED_FOR] ? $_SERVER[HTTP_X_FORWARDED_FOR] : $_SERVER[REMOTE_ADDR]; $uri = $_SERVER[PHP_SELF]; $cache = new Memcached(); $cache->addServer(127.0.0.1, 11211) ordie(memcached接合出局

