Как я могу создать способ временно заблокировать IP-адреса от доступа к форме слишком много раз? - PullRequest
0 голосов
/ 21 августа 2011

Я ищу идеи / способы временно заблокировать ip доступ к веб-странице на моем сайте / форме много раз.

Предел должен быть примерно таким, не более 5 раз в 1 деньна веб-странице / форме в противном случае должно отображаться простое текстовое сообщение типа «Слишком много запросов от вашего ip, повторите попытку позже, если вы считаете, что это неправильно, свяжитесь с нами».через PHP, но я действительно открыт для всего.Я не совсем уверен, как работать с базами данных и файлами cookie, но я уверен, что могу прочитать об этом.

Ответы [ 3 ]

1 голос
/ 21 августа 2011

Простое и быстрое решение:

  1. Создать таблицу id, url, user_ip, request_number, date
  2. Регистрация в БД по URL, дате, user_ip и request_number> 5 и блокировать или нет этот запрос Если не использовать INSERT ... ON DUPLICATE KEY UPDATE request_number = request_number+1

Также вы можете использовать блокировку на стороне веб-сервера. Например, nginx позволяет добавлять ips для запрета на лету.

0 голосов
/ 22 августа 2011

Используйте таблицу с 2 столбцами IPAddress и Date

отметьте как

SELECT COUNT(\*) c FROM table WHERE ipaddress = 'ipaddress' AND ipdate = 'date("Y-m-d")'

if c greater then 4, 

<\? die("your message"); ?>

else
insert into table VALUES ('ipadress', 'date(Y-m-d)');
0 голосов
/ 21 августа 2011

Я бы установил файлы cookie с отметкой времени и количеством отправленных сообщений и сравнил бы отметку времени с текущим временем.

Файлы cookie могут быть очищены, поэтому вы можете создать резервную копию с сохранением IP-адресов и временных меток в базе данных mysql. А при посещении проверьте ip в БД против текущего времени и количества отправок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...