ホームページ >バックエンド開発 >PHPチュートリアル >Ddos、DNS、クラスターサーバー攻撃を防ぐための PHP プログラムのソリューションの簡単な分析_PHP チュートリアル

Ddos、DNS、クラスターサーバー攻撃を防ぐための PHP プログラムのソリューションの簡単な分析_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:05:151196ブラウズ

废话不废话多、上、上上上

复制

代码代码:
<?php

//查询ip

$ ip = $ _ server ['remote_addr'];
$ fileht = " .htaccess2";
if(!file_exists($fileht))
file_put_contents($fileht,"");$filehtarr=@file($fileht);
if(in_array($ip."rn",$filehtarr) )
die("警告:"."
"."あなたの IP アドレスは何らかの理由で禁止されています。ご質問がある場合は shop@mydalle.com までお問い合わせください!");

// 禁止 IP の追加

$time=time();
$fileforbid="log/forbidchk.dat";
if(file_exists($fileforbid)) {
if($time-filemtime($fileforbid)>60)
リンク解除($ 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."rn") ,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."1rn";
elseif($numtem<$allowNum)
$str.=$iptem.$uritem.$timetem.($ numtem+1)."rn";
else {
if(!file_exists($fileforbid)) {
$addforbidarr=array($ip."rn",time()."rn",1);
file_put_contents( $fileforbid,$addforbidarr);
}
file_put_contents("log/forbided_ip.log",$ip."--".date("Y-m-d H:i:s",time())."--".$ uri."rn",FILE_APPEND);
$timepass=$timetem+$allowTime-$time;
die("警告:"."
"."申し訳ありませんが、頻繁に更新しすぎることは禁止されています。お待ちください。 ".$timepass." 秒間続行します!");
}
}
}
}
if($yesno) $str.=$checkip.$checkuri.$time."1rn";file_put_contents($file ,$str);

?>

http://www.bkjia.com/PHPjc/327704.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327704.html
技術記事废话不多说,上代码复制代网 如下: ?php //禁止IP $ip =$_SERVER['REMOTE_ADDR']; $fileht=".htaccess2"; if(!file_exists($fileht)) file_put_contents($fileht,...
🎜🎜 🎜🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。