пхп-обработчик перегружает сервер?=/

Ага, md5 не будет меняться в течение всего дня. Думаю такая защита легко обходится. Но если сделать так, чтобы каждый раз новый md5, тогда да.
Батенька Вы невнимательны! md5 будет меняться ежечасно!
дата_в_формате_ГМДЧ
а можно сделать и чаще...
например раз в полчаса:
PHP:
if(date(i)<30){$i=0;} else{$i=1;}
$checkword = md5(дата_в_формате_ГМДЧ+$i+ кодовое_слово);
 
Боюсь, даже полчаса не спасут... Вы тока гляньте, как этот гад спамит =/

chibit, видимо придется и правда туда, угу, ибо хостер наконец разродился окончательным решением:

Hello,

Your account "***.ru" has been disabled due to causing high load on server. Due to this other clients are also facing problem. We can not host this account on our shared server. You can upgrade your hosting plan with Dedicated or VPS server where you can host this account.

Please feel free to contact us back in case of any further information.

Блин, вот реально обидно - ведь сидит один какой-то неудовлетворенный школоло, и из-за него одного столько проблем =/
 

Вложения

  • logfile(1).txt
    228 KB · Просмотры: 14
Ты не пори горячку... Для начала попробуй сделать так как я предложил, если сервак не будет ложиться уже хорошо :)... Вот если бы этому уроду возвращать как то его запросы, это было бы совсем отлично :)
К стати попробуй в лог забить не $realip а все параметры из функции айпишной: $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"], $HTTP_SERVER_VARS["HTTP_CLIENT_IP"] и т.д... глядишь и вылезет дето реальный айпишник...
 
Для начала попробуй сделать так как я предложил, если сервак не будет ложиться уже хорошо
12 запросов в секунду по новому логу, не думаю, что поможет.
К стати попробуй в лог забить не $realip
Хы, IP из tor-а. Так что не прокатит.
 
Счас уже особо не потестируешь - я отключила файл с голосованием, ибо при следующем превышении меня окончательно выселяют с хостинга. Надо или сразу 100% вариант, или сначала переезжать в более лояльное место, а там уж тестировать.
Мне отключать сайт даже на сутки очень не выгодно =/ Так что подбираю варианты и пакую чемоданы...

зы а если правдо чего-нибудь с кукой придумать?
Типа регать куку, хидденом формы передавать. Если в хиддене куки нет - обработчик сразу в die? И каждый раз новую куку?
Или сервер-реферер еще как-то поставить? Не поможет?
 
\inc\top.php добавь в самом верху
PHP:
<? session_start();
if(!isset($_SESSION['antiflood'])) {
	$_SESSION['antiflood'] = 'true';
} ?>
в votes.php после <?php
PHP:
session_start();
if (!isset($_SESSION['antiflood']) || $_SESSION['antiflood'] !== 'true') {
	die();
}
Но.. Ничего не мешает направить DoS на другие части сайта.
З.Ы. Код не тестировал, думаю пока не стоит его использовать. М.б. кто лучше вариант предложит.
З.З.Ы. Всё равно будет дофига процессов php создаваться, хостер не думаю, что будет долго это терпеть.
 
Еще как вариант с сессией предложили, с задержкой голосования в минуту:

PHP:
 if (isset($_SESSION['comment_dostup']) != "")
 {
  if ((time() - $_SESSION['comment_time']) <= 60)
  {
   $_SESSION['comment_dostup'] = $_SESSION['comment_dostup'] + 1;

***
тут еще 1 if можно, что если больше 5-и раз, то выдать куки на перенаправление
***
  } else {
   unset($_SESSION['comment_dostup']);
   unset($_SESSION['comment_dtime']);
  } 
 } else {
  $_SESSION['comment_dostup'] = 1;
  $_SESSION['comment_time'] = time();
 }


А по поводу $_SESSION['antiflood'] - это не получился, что чел может проголосовать только за одну цитату и все? А если захочет за вторую, обработчик ему die с маслом покажет?
 
А по поводу $_SESSION['antiflood'] - это не получился, что чел может проголосовать только за одну цитату и все? А если захочет за вторую, обработчик ему die с маслом покажет?
Не должно. Идея в следующем: реальный чел заходит на страницу с голосилкой, при этом инициализируется сессия, при DoS атаке сессия не запускается так как идет прямое обращение к файлу, который обрабатывает форму голосования... При этом в файле обработки идет сразу проверка на наличие сессии и если таковая отсутствует, то запрос отправляется в топку...
То-есть, если пользователь захочет повторно проголосовать, то для него будет запущена еще одна сессия и он спокойно проголосует...
 
Хм, а если досер зайдет на сайт, а потом запустит свой скрипт? Сессия же будет тогда =/
И я посмотрела по логу в БД, этот гад таки именно голосует за цитаты. За разные, но очень быстро (скрин)
 

Вложения

  • logi.jpg
    logi.jpg
    129,2 KB · Просмотры: 11
А по поводу $_SESSION['antiflood'] - это не получился, что чел может проголосовать только за одну цитату и все? А если захочет за вторую, обработчик ему die с маслом покажет?
Нет, это всего лишь защита от того, чтобы он напрямую не голосовал, а сначала зашел на сайт с цитатой и получил ID сессии в печеньки.
с задержкой голосования в минуту
Легко обходится очисткой или неиспользованием печенек.
Хм, а если досер зайдет на сайт, а потом запустит свой скрипт? Сессия же будет тогда =/
Не уверен, что DoS софт поддерживает печеньки, поэтому нужно попробывать. Говорят, что помогает.

IMHO, всё это унылые костыли, если и делать защиту - то на уровне брандмауэра или fail2ban на VDS-е. Либо менять на нормального хостера.
 
Назад
Сверху