2010-06-19 2 views
0

Я получаю много неудачных запросов на вход от спамеров/ботов, которые пытаются переустановить учетные данные, также я получаю много запросов на такие страницы, как /forum/index.php.Надежный метод блокировки спамеров в приложении Rails?

Я написал сценарий для разбора IP-адресов тех нападавших от production.log:

#!/bin/bash 

# Failed Logins 
grep "Failed " ~/app/log/production.log | egrep -o -e "[0-9]{2,3}\.[0-9]{2,3}\.[0-9]{2,3}\.[0-9]{2,3}" | sort | uniq > ~/spammers.txt 

# Try to GET .php Files 
cat ~/app/log/production.log | awk '$0!~/^$/ {print $0}' | sed -n -e "N; /\.php/p" | grep "ApplicationController#index" | egrep -o -e "[0-9]{2,3}\.[0-9]{2,3}\.[0-9]{2,3}\.[0-9]{2,3}" | sort | uniq >> ~/spammers.txt 

Но я не могу блокировать (.httaccess) те IP, пока я вручную проверить их происхождение Geolocation.

Есть ли решение для решения этой проблемы?

ответ

1

Я не думаю, что есть ответ Rails на это.

Если вы работаете на Linux-сервере, вы можете изучить использование LFD (Daemon Failure Login). http://www.configserver.com/cp/csf.html

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

-1

Есть много вещей, которые вы могли бы сделать. Нет, в частности, Rails-y, но должен помочь в любом случае.

Прежде всего, я рекомендую использовать для аутентификации JanRain Engage (formerly rpxnow.com). Этот продукт позволяет пользователям регистрироваться на вашем сайте с использованием учетных данных для проверки подлинности от Google, Yahoo, Microsoft, Facebook и множества других поставщиков OpenID. Пусть они беспокоятся о атаках DOS.

Во-вторых, если у них есть определенные URL-адреса, которые они пытаются ударить, попросите свой веб-сайт обслуживать его как статическую веб-страницу и установите заголовки HTTP, чтобы страница изгоев была кеширована в браузере. Тогда, по крайней мере, ваш сервер не будет забиваться так сильно.

В-третьих, зарегистрируйте IP-адреса спамеров & ботов, которые пытаются войти на ваши страницы более, скажем, 10 раз в минуту, и если они попытаются войти в систему снова, отключите их ответ, поставив 4-секундный сон перед тем, как сделать свою страницу.

+0

Так или иначе, я уверен, сценарий хакеры писали не уважает кэш-заголовки. Кроме того, я бы поставил деньги на то, что хакеры просто нажимают на общие URL-адреса и будут продолжать делать это, даже если это открытый сайт. –

+0

Использование сна до того, как вы сделаете свою страницу, будет только связывать ваши процессы с рельсами. Не делай этого. –

+0

@Scott S - Хорошая точка. Сон должен произойти на веб-странице javascript, который отображает форму входа в систему или форму ответа на вход. Но вы правы на первом ... спам-боты, как правило, не программы в веб-браузерах. –