Блокируем спам-ботов

Однажды на одном из сайтов обнаружилась вредоносная активность ботов. Группа организованых китайских виртуальных товарищей слала огромное количество POST /forum/index.php/trackback запросов, приводя сервер в крайнее замешательство и нежелание работать. Что было в теле запроса остаётся загадкой, но, думаю, это и не важно, т.к. активность ботов была похожа на простой ddos. Т.к. блокировать каждый новый ip — а в КНР их много — не предоставлялось возможным, подсетей также было много, а весь китайский сегмент забанить рука не подымалась, было придумано простенькое решение по автоматической блокировке при получении запроса на определённые URL. Ниже описано, как я это делал.
Continue reading

Git: творческое переписывание истории

Пришлось на днях вытащить из одного большого git репозитория (~22k коммитов) несколько файлов и прилепить их к другому репозиторию с сохранением истории. Использовал несколько типов фильтров (git filter-branch), ниже — небольшая инструкция, как это делалось.
Continue reading

Exim4 для отладки приложений

Случилось мне отлаживать PHP-приложение, активно отправляющее письма через sendmail. Собственно, для отладки отправлять письма непосредственным получателям не нужно, необходимо лишь видеть, что именно и как отправляется. В общем, было бы неплохо перенаправлять отправляемые письма в какой-то в файл. В качестве MTA у меня exim4, о его конфигурации и пойдёт речь.
Continue reading

MODx Revo FormIt + no captcha reCAPTCHA

Hallo, die Welt. Так уж сложилось, что это будет первая информативная страница на данном ресурсе, и речь в ней пойдёт об использовании нового reCAPTCHA API в системе управления контентом MODx.
Йа не робот!
С недавних пор Google ввел в строй новую версию reCAPTCHA, благодаря которой в большинстве случаев пользователю не потребуется вводить нечитаемые слова для подтверждения своего биологического происхождения: достаточно лишь клацнуть мышкой на кнопку. К сожалению, на данныый момент компонент MODx для обработки форм — FormIt — ещё не умеет работать с reCAPTCHA2, что, впрочем, не мешает с помощью небольшого напильника научить его работать…
Continue reading