В приложении требуется использовать капчу. Генерация и проверка капчи должна быть реализована локально, без использования внешних сервисов проверки. Практически все реализации капчи используют сессию. Фраза сохраняется в сессии пользователя и при проверке сравнивается пришедшая фраза с фразой из сессии.
А как быть, если приложение не использует сессии? Пока придумал только:
Меня смущает безопасность такого решения. Фактически при каждом обновлении картинки/страницы в кэш добавляется новая запись. Можно, разумеется, задать маленькое время жизни для таких записей, но менее 10 минут не задашь (мало ли как будет тупить пользователь над формой). Не получится ли из такого решения потенциальная бомба, когда сайту могут забить весь кэш одними только обновлениями страницы?
Второй вариант, который приходит в голову, - это:
таким образом сократить кол-во записей капчи в кэше. Но тут меня беспокоит вопрос безопасности (может я параноик?) Не сможет ли человек нагенерить капчей и передать оптом спам боту, который за время жизни записей в кэше понаделает регистраций? )))
Буду рад, если поделитесь примерами реализации капчи без использования сессий? Проект на symfony, но это особой роли не играет, главное алгоритм.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости