欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析PHP程序防止ddos,dns,集群服務器攻擊的解決辦法

 更新時間:2013年06月18日 15:44:16   作者:  
本篇文章是對PHP程序防止ddos,dns,集群服務器攻擊的解決辦法進行了詳細的分析介紹,需要的朋友參考下
廢話不多說,上代碼
復制代碼 代碼如下:

<?php
//查詢禁止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:"."<br>"."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;//防刷新次數(shù)
$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:"."<br>"."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);
?>

相關文章

  • PHP使用 Imagick 擴展實現(xiàn)圖片合成,圓角處理功能示例

    PHP使用 Imagick 擴展實現(xiàn)圖片合成,圓角處理功能示例

    這篇文章主要介紹了PHP使用 Imagick 擴展實現(xiàn)圖片合成,圓角處理功能,結合具體實例形式分析了PHP使用 Imagick 擴展的圖形處理、生成相關操作技巧,需要的朋友可以參考下
    2019-09-09
  • Zend Studio 實用快捷鍵一覽表(精心整理)

    Zend Studio 實用快捷鍵一覽表(精心整理)

    以下是小編精心整理的Zend Studio實用快捷鍵。很有用哦!需要的朋友可以過來參考下
    2013-08-08
  • php實現(xiàn)網(wǎng)頁上一頁下一頁翻頁過程詳解

    php實現(xiàn)網(wǎng)頁上一頁下一頁翻頁過程詳解

    這篇文章主要介紹了php實現(xiàn)網(wǎng)頁上一頁下一頁翻頁過程詳解,大致功能就是頁面只顯示幾條信息,按上一頁、下一頁切換內容,當顯示第一頁時上一頁和首頁選項不可選,當頁面加載到最后一頁時下一頁和尾頁選項不可選,需要的朋友可以參考下
    2019-06-06
  • thinkphp微信開發(fā)(消息加密解密)

    thinkphp微信開發(fā)(消息加密解密)

    這篇文章主要介紹了thinkphp微信開發(fā),重點介紹的是安全模式下消息的加密解密,感興趣的小伙伴們可以參考一下
    2015-12-12
  • PHP中source #N問題的解決方法

    PHP中source #N問題的解決方法

    最近寫PHP里面的查詢經(jīng)常會遇到source #4或者source#5這樣的問題,下面有個不錯的解決方法,大家可以嘗試下
    2014-01-01
  • PHP程序員必須知道的兩種日志實例分析

    PHP程序員必須知道的兩種日志實例分析

    這篇文章主要介紹了PHP程序員必須知道的兩種日志,結合實例形式分析了php-fpm 慢日志及php-error 錯誤日志相關原理與使用技巧,需要的朋友可以參考下
    2020-05-05
  • PHP session反序列化漏洞超詳細講解

    PHP session反序列化漏洞超詳細講解

    這篇文章主要介紹了PHP?session反序列化漏洞,php?session反序列化漏洞存在的原因是當序列化session和讀取反序列化字符時采用的序列化選擇器不一樣時,處理的方法不一樣
    2023-02-02
  • The specified CGI application misbehaved by not returning a complete set of HTTP headers

    The specified CGI application misbehaved by not returning a

    The specified CGI application misbehaved by not returning a complete set of HTTP headers
    2011-03-03
  • php FLEA中二叉樹數(shù)組的遍歷輸出

    php FLEA中二叉樹數(shù)組的遍歷輸出

    最近在做一個項目其中涉及到“無限級回復”,F(xiàn)LEA中中有一個關于數(shù)組的輔助類:FLEA_Helper_Array,這個類里面有一個非常強大的數(shù)組處理方法:array_to_tree,這個方法可以把二維數(shù)組轉換為二叉樹結構
    2012-09-09
  • PHP CURL使用詳解

    PHP CURL使用詳解

    今天小編就為大家分享一篇關于PHP CURL使用詳解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論