西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > php教程 >

php防止网站被攻击办法

时间:2016-05-11 00:20来源: 作者: 点击:
最近网站经常被攻击,后来想到了一个利用php来防止网站受攻击的办法,下面是我的代码,代码不是最好的,根据自己的需求来做,下面来看看我的代码. /* *网站防ip攻击代码(anti-ipattackcodewe

最近网站经常被攻击,后来想到了一个利用php来防止网站受攻击的办法,下面是我的代码,代码不是最好的,根据自己的需求来做,下面来看看我的代码.

  1. /*  
  2. *网站防ip攻击代码(anti-ip attack code website)2010-11-20,ver2.0  
  3. *mydalle.com anti-refresh mechanism  
  4. *design by www.好模板ldhost.cn 
  5. */ 
  6.  
  7.  
  8. //查询禁止ip  
  9. $ip =$_server['remote_addr'];  
  10. $fileht=".htaccess2";  
  11. if(!file_exists($fileht))file_put_contents($fileht,"");  
  12. $filehtarr=@file($fileht);  
  13. if(in_array($ip."rn",$filehtarr))die("warning:"."
    "
    ."your ip address are forbided by mydalle.com anti-refresh mechanism, if you have any question pls emill to shop@mydalle.com!
    (mydalle.com anti-refresh mechanism is to enable users to have a good shipping services, but there maybe some inevitable network problems in your ip address, so that you can mail to us to solve.)"
    ); 
  14.  
  15. //加入禁止ip  
  16. $time=time();  
  17. $fileforbid="log/forbidchk.dat";  
  18. if(file_exists($fileforbid))  
  19. if($time-filemtime($fileforbid)>30)unlink($fileforbid);  
  20. else{  
  21. $fileforbidarr=@file($fileforbid);  
  22. if($ip==substr($fileforbidarr[0],0,strlen($ip)))  
  23. {  
  24. if($time-substr($fileforbidarr[1],0,strlen($time))>120)unlink($fileforbid);  
  25. elseif($fileforbidarr[2]>120){file_put_contents($fileht,$ip."rn",file_append);unlink($fileforbid);}  
  26. else{$fileforbidarr[2]++;file_put_contents($fileforbid,$fileforbidarr);}  
  27. }  
  28. }  
  29. }  
  30. //防刷新  
  31. $str="";  
  32. $file="log/ipdate.dat";  
  33. if(!file_exists("log")&&!is_dir("log"))mkdir("log",0777);  
  34. if(!file_exists($file))file_put_contents($file,"");  
  35. $allowtime = 60;//防刷新时间  
  36. $allownum=5;//防刷新次数  
  37. $uri=$_server['request_uri'];  
  38. $checkip=md5($ip);  
  39. $checkuri=md5($uri);  
  40. $yesno=true;  
  41. $ipdate=@file($file);  
  42. foreach($ipdate as $k=>$v)  
  43. $iptem=substr($v,0,32);  
  44. $uritem=substr($v,32,32);  
  45. $timetem=substr($v,64,10);  
  46. $numtem=substr($v,74);  
  47. if($time-$timetem<$allowtime){  
  48. if($iptem!=$checkip)$str.=$v;  
  49. else{  
  50. $yesno=false;  
  51. if($uritem!=$checkuri)$str.=$iptem.$checkuri.$time."1rn";  
  52. elseif($numtem<$allownum)$str.=$iptem.$uritem.$timetem.($numtem+1)."rn";  
  53. else  
  54. {  
  55. if(!file_exists($fileforbid)){$addforbidarr=array($ip."rn",time()."rn",1);file_put_contents($fileforbid,$addforbidarr);}  
  56. file_put_contents("log/forbided_ip.log",$ip."--".date("y-m-d h:i:s",time())."--".$uri."rn",file_append);  
  57. $timepass=$timetem+$allowtime-$time;  
  58. die("warning:"."
    "
    ."pls don't refresh too frequently, and wait for ".$timepass." seconds to continue, if not your ip address will be forbided automatic by mydalle.com anti-refresh mechanism!
    (mydalle.com anti-refresh mechanism is to enable users to have a good shipping services, but there maybe some inevitable network problems in your ip address, so that you can mail to us to solve.)"
    );  
  59. //开源代码好模板ldhost.cn 
  60. }  
  61. }  
  62. }  
  63. if($yesno$str.=$checkip.$checkuri.$time."1rn";  
  64. file_put_contents($file,$str);  
  65. ?> 
  66.  
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容