Надежный способ блокировать спаммеров в Rails App? - PullRequest
0 голосов
/ 20 июня 2010

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

Я написал скрипт для анализа 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-адреса, пока не вручную проверю их происхождение с помощью Геолокация .

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

Ответы [ 2 ]

1 голос
/ 20 июня 2010

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

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

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

0 голосов
/ 20 июня 2010

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

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

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

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

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