Внедрение captcha в среде веб-службы REST без состояния
-
23-08-2019 - |
Вопрос
Проект, над которым я работаю, представляет собой фрагмент статического HTML с некоторым встроенным JavaScript, который будет вызывать веб-сервис REST, который я создаю сам, используя .NET 3.5 WCF.
JavaScript получит некоторые данные от пользователя, включая адрес электронной почты, затем отправит эти данные веб-сервису через Ajax.Затем веб-сервис сохранит информацию в базе данных.
Поскольку это веб-сервис, я почти уверен, что он будет без состояния.
Однако требованием к проекту является то, что интерфейсный JavaScript также должен выполнять captcha, чтобы предотвратить рассылку спама.
Сам сайт будет работать всего несколько недель (максимум 6 недель), и я не думаю, что этого времени хватит потенциальным злоумышленникам, чтобы всерьез взяться за отключение сайта.
По этой причине я рассмотрел возможность создания полностью клиентской captcha, поскольку традиционная captcha требует сеансов с отслеживанием состояния.
Однако мне любопытно узнать, какие меры безопасности обычно были бы реализованы в среде без состояния, или если кто-нибудь думает, что я ошибаюсь относительно достаточной проверки captcha на стороне клиента.
Решение
Возможно, вам даже не понадобится КАПЧА.Многие спам-клиенты слишком тупы, чтобы выполнять такие вещи, как Javascript.Вы могли бы попробовать просто установить скрытый ввод на некоторое значение в Javascript.
Если ваш сайт работает всего несколько недель, то я сомневаюсь, что кто-нибудь создал бы клиент, который смог бы обойти это.
Тем не менее, это испортило бы пользователей без Javascript, поэтому я бы рекомендовал вывести на экран сообщение, которое удаляет Javascript.Это было бы то же поле ввода, но в виде флажка с надписью, которая объясняет, что им нужно установить флажок, чтобы его не игнорировали.