Я получаю много неудачных запросов на вход от спамеров/ботов, которые пытаются переустановить учетные данные, также я получаю много запросов на такие страницы, как /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.
Есть ли решение для решения этой проблемы?
Так или иначе, я уверен, сценарий хакеры писали не уважает кэш-заголовки. Кроме того, я бы поставил деньги на то, что хакеры просто нажимают на общие URL-адреса и будут продолжать делать это, даже если это открытый сайт. –
Использование сна до того, как вы сделаете свою страницу, будет только связывать ваши процессы с рельсами. Не делай этого. –
@Scott S - Хорошая точка. Сон должен произойти на веб-странице javascript, который отображает форму входа в систему или форму ответа на вход. Но вы правы на первом ... спам-боты, как правило, не программы в веб-браузерах. –