博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站防御DDOS的PHP代码
阅读量:6243 次
发布时间:2019-06-22

本文共 2430 字,大约阅读时间需要 8 分钟。

hot3.png

今天的主题是网站攻击与网站防护。这是我查到的资料,能够有效的拦截住我的DDOS 一个PHP代码
" . "Your IP address are forbided by some reason, IF you have any question Pls emill to shop@mydalle.com!"); // 加入禁止IP$time = time();$fileforbid = "log/forbidchk.dat";if (file_exists($fileforbid)){ if ($time - filemtime($fileforbid) > 60)unlink($fileforbid); else { $fileforbidarr = @file($fileforbid); if ($ip == substr($fileforbidarr[0], 0, strlen($ip))) { if ($time - substr($fileforbidarr[1], 0, strlen($time)) > 600)unlink($fileforbid); elseif ($fileforbidarr[2] > 600) { file_put_contents($fileht, $ip . "\r\n", FILE_APPEND); unlink($fileforbid); } else { $fileforbidarr[2]++; file_put_contents($fileforbid, $fileforbidarr); } } } } // 防刷新$str = "";$file = "log/ipdate.dat";if (!file_exists("log") && !is_dir("log"))mkdir("log", 0777);if (!file_exists($file))file_put_contents($file, "");$allowTime = 120; //防刷新时间 $allowNum = 10; //防刷新次数 $uri = $_SERVER['REQUEST_URI'];$checkip = md5($ip);$checkuri = md5($uri);$yesno = true;$ipdate = @file($file);foreach($ipdate as $k => $v){ $iptem = substr($v, 0, 32); $uritem = substr($v, 32, 32); $timetem = substr($v, 64, 10); $numtem = substr($v, 74); if ($time - $timetem < $allowTime) { if ($iptem != $checkip)$str .= $v; else { $yesno = false; if ($uritem != $checkuri)$str .= $iptem . $checkuri . $time . "1\r\n"; elseif ($numtem < $allowNum)$str .= $iptem . $uritem . $timetem . ($numtem + 1) . "\r\n"; else { if (!file_exists($fileforbid)) { $addforbidarr = array($ip . "\r\n", time() . "\r\n", 1); file_put_contents($fileforbid, $addforbidarr); } file_put_contents("log/forbided_ip.log", $ip . "--" . date("Y-m-d H:i:s", time()) . "--" . $uri . "\r\n", FILE_APPEND); $timepass = $timetem + $allowTime - $time; die("Warning:" . "
" . "Sorry,you are forbided by refreshing frequently too much, Pls wait for " . $timepass . " seconds to continue!"); } } } } if ($yesno) $str .= $checkip . $checkuri . $time . "1\r\n";file_put_contents($file, $str);?>

转载于:https://my.oschina.net/mickelfeng/blog/98211

你可能感兴趣的文章
vue工程全局设置ajax的等待动效
查看>>
Sublime Text3插件安装及问题处理
查看>>
前端如何通过Nginx代理做到跨域访问API接口
查看>>
解析JavaScript"模拟事件"的注意要点
查看>>
HashMap剖析之内部结构
查看>>
被七牛云OSS对象存储测试域名回收后正确数据迁移姿势!
查看>>
简单基于spring的redis配置(单机和集群模式)
查看>>
关于 top 工具的 6 个替代方案
查看>>
第十七天-企业应用架构模式-会话状态模式
查看>>
智能直播审核方案:视频云智能业务截帧策略
查看>>
以太坊Truffle框架构建Dapp
查看>>
闭包,sync使用细节
查看>>
Vue+thinkJs博客网站(一)之vue多页面应用的webpack3配置
查看>>
PHP面试题
查看>>
拖拽上传功能的实现及原理
查看>>
Spring校验@RequestParams和@PathVariables参数
查看>>
移动端H5页面阻止图片和文字被选中
查看>>
聊聊flink TaskManager的memory大小设置
查看>>
怎么将微博图片中的水印去掉
查看>>
[实践系列]Babel原理
查看>>