загрузка...
Дата публикации: 21.04.2016 16:24:46 |
Атака на MYSQL самая распространенная из DOS атак. Смысл ее превысить число допустимых запросов к базе.
И сайт для посетителя в дауне.
Началось все с того что мне пришло письмо с предложением перехать на новый хостинг, а то типа мой барахлит. Ну а через день начались проблемы. Простым решением стало вычислить по IP количество подключений и рубить слишком активных.
<?php $ipLog='log//ipLogFile.txt'; // Your logfiles name here
$timeout='1'; // How many min
function reload_D($REMOTE_ADDR,$ipLog)
{
$log=fopen("$ipLog", "w+");
fputs ($log,$REMOTE_ADDR."][".time()."\n");
fclose($log);
}
function record_D($REMOTE_ADDR,$ipLog)
{
$log=fopen("$ipLog", "a+");
fputs ($log,$REMOTE_ADDR."][".time()."\n");
fclose($log);
}
function check_D($REMOTE_ADDR,$ipLog,$timeout)
{
global $valid; $ip=$REMOTE_ADDR; $cip;
$valid = 1 ; $cip = 0;
$data=file("$ipLog"); $now=time();
foreach ($data as $record)
{
$subdata=explode("][",$record);
if ($now < ($subdata[1]+3600*$timeout) && $ip == $subdata[0])
{$cip++;
}
if ($cip > 100)
{
$valid=0;
reload_D($REMOTE_ADDR,$ipLog);
echo "<body bgcolor=#CCCCCC>
<table border=0 width=100% height=100%>
<tr>
<td align=center><table border=0 cellpadding=0 cellspacing=0 width=75% height=75%>
<tr><td bgcolor=#000000>
<table border=0 cellpadding=3 cellspacing=1 width=100% height=100%>
<tr>
<td height=20px align=center bgcolor=\"888888\"><font color=#FFFFFF size=2>Певышено число подключений</font></td>
</tr>
<tr>
<td align=center bgcolor=#FAFAFA><font color=#000000 size=3>
<h3 align=center> Слишком частое использование сайта !</h3>
<br>Нажмите <a href=http://".$_SERVER[HTTP_HOST].$_SERVER[PHP_SELF]."?".$_SERVER[QUERY_STRING].">Далее</a></td>
</tr>
</table>
</td></tr>
</table>
</body>";
exit;
}
}
}
check_D($_SERVER['REMOTE_ADDR'],$ipLog,$timeout);
record_D($_SERVER['REMOTE_ADDR'],$ipLog);
?>
Назад в раздел