wbtools.ru - Мониторинг курсов обмена валют на бирже платежной системы webmoney
Вход | Регистрация | Курсы WMZ/WMR | Инструменты | Форум | Контакты

Как сделать капчу легко читаемую человеком и нераспознаваемую роботами.

Раздел: Администрирование
Просмотров: 719
02.07.2016 14:15
Администратор

Репутация: 1203
Как сделать капчу легко читаемую человеком и нераспознаваемую роботами.
Мне часто приходилось писать капчи для защиты от автоматических регистраций на моих сайтах.
Сначала мной была написана простенькая капча, где каждый символ случайным образом менялся в размере, поворачивался под углом и поверх рисовались случайные линии. Файл капчи сохраняется в формате JPG низкого качества 15. Это вносит в картинку дополнительные сильные искажения.
Пример


Пол года назад боты начали эту капчу распознавать и спамить на сайте.
Сделал другую капчу в которой строка с цифрами изгибалась под случайным углом, потом поворачивалась на случайный угол, в конце наносились случайные линии черного цвета, потом случайные линии белого цвета.
Пример



Но и эту капчу боты легко распознавали.

Наконец я сделал капчу, которую пока боты не распознают.
Примеры






Особенности этой капчи, повышающие ее эффективность.
1) для рисования символов используется не стандартные символы, а символы нарисованные вручную. Каждый отдельный символ имеет по 200 вариантов различного написания. Потратил на рисование всех символов в фотошопе неделю. Хакеру, что бы взломать эту капчу придется найти 200 вариантов написания каждого символа.
2) Все рисуется одним цветом. Это НЕ позволяет взломщику отличать символы по цвету. Я считаю использование разных цветов в капчах неправильным, так как разные цвета затрудняют чтение человеку, но позволяют взломщику легко отличать символы от помех и друг от друга
3) Рисуется только контур каждого символа. Цвет тела символа совпадает с цветом фона. Это существенно затруднит боту идентификацию символов методом сравнения с шаблоном.
4) Каждый символ по отдельности растягивается по горизонтали и вертикали случайным образом.
5) Соседние символы накладываются друг на друга. Это затрудняет боту разделение строки на отдельные символы.
6) Расстояние между соседними символами выбирается случайно. При рисовании каждого символа проверяется, что бы не было пустого пространства между ними. Меняя степень наложения символов друг на друга, можно регулировать сложность капчи.

Я не использовал в этой капче
1) Не использовал случайный наклон отдельных символов, так как это снизило бы качество символов и читаемость человеком. Многие символы при рисовании в фотошопе и так были нарисованы под наклоном.
2) Не использовалось наложение случайных шумов в виде линий, эллипсов или точек. Так как и без них надёжность капчи достаточная. Шумы сильно затрудняют читаемость капчи человеком.

Если взломщикам удастся настроить распознавание этой капчи, то можно будет повысить разрешение капчи и рисовать символы более сложными. Хакеру будет нелегко найти все варианты написания символов.
Пример.




Такая капча легко читается человеком, но автомтически ее распознать очень сложно.

Чего я хотел от этого топика.
1) Поделиться своими наработками в создании хороших капчей.
2) Получить замечания и предложения по используемым мной методам рисования капчи.
3) Получить новые идеи для создания капч.
4) Предложить свои услуги по установке созданных мной капчей на ваши сайты. Аська 1699тpи8679
Для того что бы писать комментарии, нужно зарегистрироваться.
Войти Регистрация