webew
Войти » Регистрация
 
PHP

Как запретить долбежку одного и того-же ip

20 декабря 2012, 23:58
Автор: sasha12342
Есть одна задумка на эту тему но не знаю как ее реализовать.
Думаю сделать так:
1) С помощью
$_SERVER['HTTP_CLIENT_IP']
узнаю ip посетителя или робота, заношу их в переменную "client".
2) Не знаю как, но задаю продолжительность жизни этой переменной 10 секунд
3) Пишу php код который проверяет если существует переменная "client" и если существует то вывожу параметр
sleep (10);
и только через 10 секунд загрузится страница.

Как Вы думайте это поможет избавится от "дятлов" или есть более надежные решение?

Важно: Как задать продолжительность жизни переменной?
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
NO USERPIC

rgbeast

Заносите в базу данных ip и время обращения. При следующем обращении сверяйте. Можно использовать таблицу типа MEMORY (или hash-value хранилище типа memcached).

Не поможет, так как долбить можно разными способами. Но таким способом можно ограничить, например, разрешенную частоту поиска, например.
21.12.2012, 01:24
Ответить

1234ru

В PHP нет понятия времени жизни переменной. Если переменная установлена - она существует в своей области видимости до тех пор, пока не завершится скрипт.
То, что не убивает нас, делает нас инвалидами.
21.12.2012, 01:26
Ответить
NO USERPIC

rgbeast

Исходя из характера вопроса, автор имел в виду переменные, которые живут дольше, чем работает скрипт. Можно предположить, что это переменные сессии или куки. Так как первые основаны на вторых, их использование не поможет - злоумышленник может работать с отключенными куками.
21.12.2012, 01:40
Ответить
NO USERPIC

sasha12342

meta http-equiv=Refresh content='15; URL=index.php'
этот код перебрасывает нас на страницу "index.php" через 15 секунд.
А можно сделать что то на подобие, типа: удалить переменную через 15 секунд?

А как вообще защитится от "дятлов"?
Как запретить загрузку страницы одному и тому-же ip более чем один раз в 4 секунды?

Заносить в базу данных не хочу, боюсь, что она быстро наполнится и потом будет тормозить загрузку страницы, так как при каждом обращении к странице придется перелистывать всю таблицу. Если я ошибаюсь, поправьте меня.
21.12.2012, 11:41
Ответить
NO USERPIC

rgbeast

Из таблицы можно удалять все устаревшие данные (старее, чем 10 секунд), тогда обращение не будет долгим. Переменные, живущие после завершения скрипта - это переменные сессии, но они не подойдут, по причинам, которые описаны выше.
22.12.2012, 00:01
Ответить
NO USERPIC

sasha12342

На моем сайте регистрация, партнерка и авторизация основана на сессиях.
Так что, получается, что не все смогут зарегится?
Как это исправить?
22.12.2012, 16:48
Ответить
NO USERPIC

rgbeast

Сессии могут использовать все, но злоумышленники часто отключают куки и для них сессий не будет. Поэтому переменные сессии - не защита от DoS-атак.
22.12.2012, 17:25
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2024 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100

Реклама: