Разработка набора кастомных CAPTCHA для проекта (по примеру из Песочницы).
Требования
Количество: несколько (3–5) различных CAPTCHA. Типы заданий:
выбор лишнего элемента; вопрос «что невозможно в реальной жизни?»; определение букв, не относящихся к русскому алфавиту; аналогичные простые логические / визуальные задания. Юзер-френдли:
понятны с первых секунд; не требуют сложных вычислений или знаний; минимальное время на прохождение. Разнообразие:
капчи не должны быть похожи друг на друга; разные механики / форматы заданий. Безопасность:
защита от базовых ботов; усложнение автоматического решения и распознавания через ИИ (рандомизация, вариативность условий, динамика контента и т.п.). Интеграция:
легкая и быстрая интеграция в существующий проект; без дополнительных серверных ресурсов и сложных зависимостей; предпочтительно чистый JS/HTML/CSS или минимальный стек. 1. Капча должна быть простой для прохождения человеком. На сложности выше 70 допустимо чтобы было сложно, но должно быть проходимо Задания генерируются в рантайме (нельзя получить все варианты заранее)
2. Капча должна взаимодействовать с сервером в процессе решения Формат вида "отдать задание сразу в html и провалидировать на сервере конечный ответ" недопустим
3. Задание запрашивается фронтом через протокол, а не встраивается в html
4. Желательно иметь 5+ взаимодействий на прохождение: Каждый клик/свайп/etc отправляет информацию на сервер Сервер в ответ может прислать иформацию об обновленной части задания, которую юзер должен решить На высоких уровнях сложности (>80) сервер по своему решению даже без взаимодействия пользователя должен отправлять обновления заданий до того как отдать результат прохождения
5. В процессе прохождения генерировать новые части задания и отдавать на клиент
6. Капча не должна решаться алгоритмически на стороне клиента скриптом - нам не нужно то что изначально дает все данные для решения
7.Капча должна иметь по сложности один из варинтов: Динамическая 1-100 - повышается пропорционально по механике Фиксированная по вариантам. Минимум 5 вариантов, лучше 10. Кратная 20 или 10 соответственно
8. Поведение капчи при повышении уровня сложности Капча должна иметь изменение самой механики, пусть и незначительное. Именно изменение по смыслу, добавление чего-то нового, а не просто увеличение количества элементов в задаче
9. Также допустимо давать клиенту несколько заданий на сложностях выше 60, допустим 60 - 2 задания, 80 - 3 задания, 100 - 4 задания. Таким образом можно компенсировать прохождение уже обученной модели за счет мультипликации ее доли ошибок.