Думаю многих блогеров и хозяинов форумов беспокоит наличие спама в своих проектах. Вроде-бы ставить очень сложную капчу не вариант — отпугнёшь юзеров, а слишком лёгкие пробивает всем известный хрумер — и спам будет валить десятками в сутки, как только попадёт в базу к хрумоводам. Как обмануть бота и возможно убить его, расскажу ниже.
Первый трюк — поворот не туда
Бот устроен так, что парсит страницы на предмет полей, которые можно заполнить, и отправляет данные на форму, которая указана в коде страницы.
<div style="visibility: hidden;">
<form action="http://www.microsoft.com/index.php">
<input type="text" name="username">
<input type="text" name="subject">
<textarea name="message">
</textarea>
<input type="submit" value="Send">
</form>
</div>
Создаём невидимую форму, бот, спарсив её, заполнит и уйдет на несуществующую форму.
Второй трюк — горе от ума
Так же хрумер может отвечать на вопросы, ставить галочки в радиобатонах, и вообще, максимально пробивать защиту web-приложений. Но так как математические выражения могут быть составлены неправильно, это может вызвать ошибку в хрумере. Код ниже заставит задуматься не только робота, но и человека. Решить робот это не сможет.
<b>NoSpam! verification question</b>Solve the equation.(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-(-***436=
<input name="nospam">
Третий трюк — ядовитая капча
Хрумер имеет встроенные алгоритмы обхода капчи, а точнее её расшифровывание. Обнаружив на странице признаки капчи, хрумер скачивает картинку и пытается её расшифровать перед постингом. Если разместить специально сгенерированную картинку, то хрумер съест большое количество оперативки и бот может просто зависнуть.
Картинку размещаем на хостинге, и указываем в форме:
<img src="имя_картинки.png">
<input type=text name="captcha">
<input type="text" name="captcha">
К тому же, если разместить код <b>The confirmation code you entered was incorrect</b>, то робот подумает, что он не правильно разгадал капчу, и попробует ещё раз.
Всё в одном
Решил я поэкспериментировать, и разместил всё это на блоге. Разумеется, со временем разработчик спамера всё это исправит, ну а пока можно сделать хорошую ловушку для спам бота, присоединяйтесь.
Скачать код и капчу
По мотивам antibots.livejournal.com, за что спасибо автору!