[工具使用] 网站防御DDOS攻击php源码

1447 2
晓凤科技实名认证 2022-4-2 10:28:07 来自手机 | 显示全部楼层 |阅读模式
// 查询禁止IP

$ip = $_SERVER['REMOTE_ADDR'];

$fileht = ".htaccess2";

if (!file_exists($fileht))file_put_contents($fileht, "");

$filehtarr = @file($fileht);

if (in_array($ip . "\r\n", $filehtarr))die("Warning:" . "
" . "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);

?>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

晓凤科技

初级红客

关注
  • 31
    主题
  • 11
    粉丝
  • 0
    关注
我是胡锦程,中国晓凤网络安全的创始人,会python等编程语言,懂得kali linux的使用,我时刻准备着,为中国网络安全事业作出贡献。

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行