PHP透過禁止IP頻繁存取防止網站被防攻擊
本篇文章主要介紹PHP透過禁止IP頻繁存取防止網站被防攻擊,有興趣的朋友參考下,希望對大家有幫助。
如果發現某個ip訪問網站太頻繁了就加入到黑名單禁止訪問,這不是一個很好的辦法,但情急之下向不更好的解決方式,只是權宜之計,以後再進行深入的研究一下。
<?php header('Content-type: text/html; charset=utf-8'); $ip=$_SERVER['REMOTE_ADDR'];//获取当前访问者的ip $logFilePath='./log/';//日志记录文件保存目录 $fileht='.htaccess2';//被禁止的ip记录文件 $allowtime=60;//防刷新时间 $allownum=5;//防刷新次数 $allowRefresh=120;//在允许刷新次数之后加入禁止ip文件中 if(!file_exists($fileht)){ file_put_contents($fileht,''); } $filehtarr=@file($fileht); if(in_array($ip."\r\n",$filehtarr)){ exit('警告:你的IP已经被禁止了!'); } //加入禁止ip $time=time(); $fileforbid=$logFilePath.'forbidchk.dat'; if(file_exists($fileforbid)){ if($time-filemtime($fileforbid)>30){ @unlink($fileforbid); }else{ $fileforbidarr=@file($fileforbid); if($ip==substr($fileforbidarr[0],0,strlen($ip))){ if($time-substr($fileforbidarr[1],0,strlen($time))>120){ @unlink($fileforbid); }else if($fileforbidarr[2]>$allowRefresh){ file_put_contents($fileht,$ip."\r\n",FILE_APPEND); @unlink($fileforbid); }else{ $fileforbidarr[2]++; file_put_contents($fileforbid,$fileforbidarr); } } } } //防刷新 $str=''; $file=$logFilePath.'ipdate.dat'; if(!file_exists($logFilePath)&&!is_dir($logFilePath)){ mkdir($logFilePath,0777); } if(!file_exists($file)){ file_put_contents($file,''); } $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."\r\n"; }else if($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($logFilePath.'forbided_ip.log',$ip.'--'.date('Y-m-d H:i:s',time()).'--'.$uri."\r\n",FILE_APPEND); $timepass=$timetem+$allowtime-$time; exit('警告:不要刷新的太频繁!'); } } } } if($yesno){ $str.=$checkip.$checkuri.$time."\r\n"; } file_put_contents($file,$str);
總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。
相關推薦:
以上是PHP透過禁止IP頻繁存取防止網站被防攻擊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP適用於Web開發和內容管理系統,Python適合數據科學、機器學習和自動化腳本。 1.PHP在構建快速、可擴展的網站和應用程序方面表現出色,常用於WordPress等CMS。 2.Python在數據科學和機器學習領域表現卓越,擁有豐富的庫如NumPy和TensorFlow。

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。
