PHP - методология предотвращения спам-флуда, а также чрезмерной пропускной способности

Привет

Я на стадии прототипа.

Что касается приведенного ниже сценария, я хочу поделиться с вами своим планом и прошу вашего мнения, имеет ли смысл мой план или есть ли лучший способ выполнить мое требование, который вы можете порекомендовать.

спасибо, с уважением

СЦЕНАРИЙ

Спам-бот может преследовать мои формы. (почта, комментарий, расшаривание статьи) На этапе проверки могу определить спамер известными методами. (капча, ограничение по времени, секретный вопрос, скрытый элемент формы и т. д.), но что, если спам-мальчик пытается и пытается постоянно? Он не сможет проверить и выполнить цель формы, но будет постоянно потреблять пропускную способность.

МОЕ ТРЕБОВАНИЕ

Не только предотвратить выполнение цели формы, но и предотвратить постоянное потребление полосы пропускания.

МОЙ ПЛАН

Используя возможности сеанса, подсчитайте количество попыток определенного ip за ограниченное время. Если количество попыток превышает n за x минут, посетитель перенаправляется на совершенно другой URL-адрес или блокирует IP-адрес посетителя во время выполнения с помощью php-кодов.

МОИ ВОПРОСЫ

  1. Логично ли перенаправить спамера на совершенно другой URL? Если да, знаете ли вы какую-либо веб-страницу, которая приветствует IP-адреса спамеров, чтобы добавить их в свои черные списки? С другой стороны, я знаю, что это действие будет неэтичным, поэтому я не должен применять такое перенаправление.

  2. Можно ли заблокировать IP-адрес во время выполнения php на моих связанных страницах проверки?


person Andre Chenier    schedule 26.02.2013    source источник


Ответы (1)


1) Мне это кажется нелогичным. Например, представьте бота для перебора, который попытается пройти вашу капчу. Скорее всего, он даже не будет работать в веб-браузере. Если вы отправляете заголовки перенаправления, он может просто игнорировать их и не загружать целевую страницу. Если вам действительно нужно сэкономить трафик, вы можете просто распечатать пустую страницу (например, вы можете использовать exit())

2) Забанить ip можно в любое время, у вас всегда есть переменная $_SERVER['REMOTE_ADDR'] и если вы решите забанить ip, вы можете просто добавить его в базу данных (или файл). И всякий раз, когда кто-то должен быть проверен, вы можете запросить базу данных для его IP-адреса.

person Kyborek    schedule 26.02.2013