В статье описан метод защиты от автоматического заполнения и отправки формы с сайта путем динамической генерации картинки с кодом и подтверждения правильности ввода.
Как это работает
Когда происходит заполнения полей с данными, система просит пользователя указать код, который он видит на картинке.
После проверки правильности ввода происходит решение - пускать клиента в систему или нет.
Большой плюс такого метода - надежность. Вскрыть картинку и найти в ней цифры не так-то просто, потому что здесь придется писать сложный анализатор изображения.
Алгоритм работы
генерируем случайное число с заданным количеством разрядов или слово из словаря (будет использоваться как надпись на картинке) - пароль
создаем случайный код сессии
во временном каталоге создаем файл с именем сессии, внутри содержится сгенерированный пароль
не забываем удалять старые файлы сессий, время жизни которых истекло - неудачные попытки авторизации
в заполняемой пользователем форме вставляем hidden поле с кодом сессии и поле ввода пароля
генерируем и показываем на странице подготовленную картинку с паролем (делаем ее трудночитаемой для возможных анализаторов, но понятной человеку)
после отправки заполненной формы сравниваем содержимое файла сессии с введенным паролем, если значения совпадают - значит форму заполняет человек, вносим данные
удаляем файл завершившейся сессии
Замечания по реализации
Сначала была мысль не использовать файлы сессий, а передавать в форме в hidden поле зашифрованный по MD5 пароль или обойтись просто созданием временных файлов с именами-значениями пароля, и проверять только их наличие.