security — действительно ли этот скрипт полезен для предотвращения атак на публичный скрипт php, который загружает изображение?

расширяя этот ответ Как ограничить количество пользовательских запросов за минуту… Я разработал этот скрипт. Он отвечает true или false, в зависимости от того, вызывал ли скрипт в течение 15 минут (в моем случае простой скрипт загрузки PHP, который включает в себя приведенный ниже скрипт) более 10 раз.
Это действительно работает, но я хотел бы знать, действительно ли это полезно для предотвращения атак, таких как DDOS или что-то подобное. Другими словами, добавляет ли это уровень безопасности к общедоступному сценарию PHP? Кто-нибудь знает, как я могу улучшить это? Дело в том, что скрипт, вызываемый для загрузки изображений, должен быть публичным в моем случае.

Я надеюсь, что этот скрипт может быть полезным для кого-то.

 <?
function isAllowed() {
$ip = $_SERVER['HTTP_CLIENT_IP']?$_SERVER['HTTP_CLIENT_IP']:($_SERVER['HTTP_X_FORWARDE‌​D_FOR']?$_SERVER['HTTP_X_FORWARDED_FOR']:$_SERVER['REMOTE_ADDR']);

if (file_exists($ip.".txt")) {
$myfile = fopen($ip.".txt", "a");
$txt = date("Y-m-d H:i:s");
fwrite($myfile, $txt . "\n");

$subject = file_get_contents($ip.".txt");

$separator = "\n";
$line = strtok($subject, $separator);

$count = 0;

while ($line !== false) {
$line = strtok( $separator );
$currentTime = date('Y-m-d H:i:s');
$before15mins = strtotime('-15 minutes');
$before15minsAsDate = date('Y-m-d H:i:s', $before15mins);
$time = strtotime( $line );
$myDate = date( 'Y-m-d H:i:s', $time );

if ($before15minsAsDate > $myDate) {
}
else {
$count++;
}
}

if($count > 10) {
//echo("too many attempts: " . $count);
return false;
}
else {
//echo("counting: " . $count);
return true;
}

} else {

fopen($ip.".txt","w");
return true;
}
}
?>

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector