Mã:
<?php
$ban = 1;
$clps = 3; // số click tối đa cho phép trong một giây
$in = $_SERVER['REMOTE_ADDR']." - ".time()."\n";
$log = fopen('erc.log','a'); fwrite($log, $in); fclose($log);
$list = file('erc.log',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$last = count($list) - 1;
if($last > $clps) {
if($list[$last - $clps] != $list[$last]) $ban = 0;
} else $ban = 0;
if($ban) {
$in = "Deny from ".$_SERVER['REMOTE_ADDR']."\n";
$lock = fopen('.htaccess','a');
fwrite($lock, $in); fclose($lock);
}
if($last > 15) unlink('erc.log');
$ban = 1;
?>
Save đoạn code sau thành file ddos.php
Đặt vào thư mục gốc của forum ... !
Đối với hầu hết các mã nguồn thì mở file global.php,chèn dưới đoạn
1 đoạn code include sau :
File ddos.php với global.php phải nằm cùng nhau trong 1 folder,nếu ko thì phải edit
Mã:
include 'pathfile/ddos.php';
Tạo file cron job như sau :
Mã:
<?php
$content = 'RewriteEngine On'."\n";
$content.= 'RewriteRule ^((urllist|sitemap_).*\.(xml|txt)(\.gz)?)$ vbseo_sitemap/vbseo_getsitemap.php?sitemap=$1 [L]'."\n";
$content.= 'RewriteCond %{QUERY_STRING} !vbseourl='."\n";
$content.= 'RewriteCond %{REQUEST_URI} !(admincp/|modcp/|chat|cron)'."\n";
$content.= 'RewriteRule ^(.*\.php(/.*)?)$ vbseo.php?vbseourl=$1 [L,QSA]'."\n";
$content.= 'RewriteCond %{REQUEST_FILENAME} !\.(jpg|gif)$'."\n";
$content.= 'RewriteRule ^(archive/.*)$ vbseo.php?vbseourl=$1 [L,QSA]'."\n";
$content.= 'RewriteCond %{REQUEST_FILENAME} !-f'."\n";
$content.= 'RewriteCond %{REQUEST_FILENAME} !-d'."\n";
$content.= 'RewriteCond %{REQUEST_FILENAME} !^(admincp|modcp|clientscript|cpstyles|images)/'."\n";
$content.= 'RewriteRule ^(.+)$ vbseo.php?vbseourl=$1 [L,QSA]'."\n";
$new = @fopen(DIR.'/.htaccess', 'w'); fwrite($new, $content); fclose($new);
if(file_exists('erc.log')) unlink('erc.log');
?>
Save file đó thành erc_res.php
Đặt vô thư mục includes/cron (nếu forum xài vbb nên bỏ vào đây cho dễ quản lý),các mã nguồn khác tùy ý các bạn :
Lên thời gian biểu để Reset ERC :
cPanel Cron Jobs :
Vậy 10 phút clear một lần.
- ERC mặc định chặn IP nếu 5 lần nhanh và liên tiếp truy cập vào một URL. Để điều chỉnh sử thay giá trị của biến $n
- Phải chmod thư mục gốc của forum sao cho ERC có quyền write.
- File erc.log lưu trữ tạm thời các URI và được xoá sau khi đã phân tích xong.
- để hết ban ip thì vào forum xóa file .htaccess di la` xonmg
P/S : Muốn edit số click tối đa cho phép trong 1 giây ,sửa file ddos.php ở đoạn sau :
Mã:
$clps = 3; // số click tối đa cho phép trong một giây