Еще хуже, поскольку вы используете cookie, спамеру даже не нужно делать CAPTCHA один раз.Файлы cookie могут быть изменены клиентом, они отправляются браузером с запросом страницы, поэтому клиент может отправлять все, что хочет.Фактически, спам-запросы исходят из сценария, поэтому еще проще изготовить файлы cookie.
Хранение переменной на стороне сервера решает проблему, о которой я упоминал;Вы устанавливаете случайный хэш в качестве файла cookie, и у вас есть таблица, в которой хранится статус CAPTCHA на сервере.Чтобы спаммер не получил CAPTCHA, ему нужно угадать хеш с правильной переменной, хранящейся на стороне сервера, что очень трудно сделать.
Проблема, которую вы упомянули;тот факт, что раз в месяц может быть недостаточно для сдерживания спамера, вы не можете обойти это.Вы должны показывать CAPTCHA каждому реальному пользователю так часто, как вы хотите, чтобы спаммер также вводил его.Помните, что CAPTCHA необходима, потому что вы не можете отличить спамера от обычного пользователя.
Вы должны часто показывать CAPTCHA, это убедит людей зарегистрироваться в любом случае.