Suyakukd
01-10-2008, 13:40
Nguyên văn bởi Jutoms (EnHack.Net)
http://xforce.enhack.net/showthread.php?p=956#post956
Rõ ràng là trong trường hợp đếm timestamp đỡ tốn tài nguyên hơn :D
(Sơ bộ trên code thì thấy nó ít tốn bộ nhớ hơn 10 lần so với ERC dùng URI)
Nếu bà con nào muốn xài ERC dùng timestamp cho đỡ tốn tài nguyên hơn thì dùng code này nhé !
<?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;
?>
http://xforce.enhack.net/showthread.php?p=956#post956
Rõ ràng là trong trường hợp đếm timestamp đỡ tốn tài nguyên hơn :D
(Sơ bộ trên code thì thấy nó ít tốn bộ nhớ hơn 10 lần so với ERC dùng URI)
Nếu bà con nào muốn xài ERC dùng timestamp cho đỡ tốn tài nguyên hơn thì dùng code này nhé !
<?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;
?>