Практические подходы CAPTCHA, не основанные на изображениях?

StackOverflow https://stackoverflow.com/questions/8472

Вопрос

Похоже, мы добавим КАПЧА поддержка переполнения стека.Это необходимо для предотвращения ботов, спамеров и другой вредоносной скриптовой активности.Мы хотим, чтобы люди публиковали или редактировали здесь что-то!

Мы будем использовать CAPTCHA JavaScript (jQuery) в качестве первой линии защиты:

http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHA

Преимущество этого подхода в том, что для большинства людей CAPTCHA никогда не будет видна!

Однако для людей с отключенным JavaScript нам все равно нужен запасной вариант, и здесь все становится сложнее.

Я написал традиционный контроль CAPTCHA для ASP.NET которые мы можем использовать повторно.

CaptchaImage

Однако я бы предпочел использовать что-то текстовое, чтобы избежать накладных расходов на создание всех этих изображений на сервере при каждом запросе.

Я видел такие вещи, как..

  • Текстовая капча ASCII: \/\/(_)\/\/
  • математические головоломки:сколько будет 7 минус 3 умножить на 2?
  • пустяковые вопросы:что вкуснее, жаба или эскимо?

Возможно, я здесь просто ругаюсь с ветряными мельницами, но мне бы хотелось иметь менее ресурсоемкую, не основанную на изображениях <noscript> совместимая CAPTCHA, если это возможно.

Идеи?

Это было полезно?

Решение

Метод, который я разработал и, кажется, работает отлично (хотя я, вероятно, не получаю столько спама в комментариях, как вы), заключается в том, чтобы иметь скрытое поле и заполнять его фиктивным значением, например:

<input type="hidden" name="antispam" value="lalalala" />

Затем у меня есть фрагмент JavaScript, который обновляет значение каждую секунду с учетом количества секунд, в течение которых страница была загружена:

var antiSpam = function() {
        if (document.getElementById("antiSpam")) {
                a = document.getElementById("antiSpam");
                if (isNaN(a.value) == true) {
                        a.value = 0;
                } else {
                        a.value = parseInt(a.value) + 1;
                }
        }
        setTimeout("antiSpam()", 1000);
}

antiSpam();

Затем, когда форма отправляется, если значение антиспама по-прежнему равно «лалалала», я отмечаю ее как спам.Если значение защиты от спама является целым числом, я проверяю, превышает ли оно значение примерно 10 (секунд).Если меньше 10 - отмечаю как спам, если 10 и больше - пропускаю.

If AntiSpam = A Integer
    If AntiSpam >= 10
        Comment = Approved
    Else
        Comment = Spam
Else
    Comment = Spam

Теория заключается в том, что:

  • Спам-бот не поддерживает JavaScript и отправляет то, что видит.
  • Если бот поддерживает JavaScript, он мгновенно отправит форму.
  • Комментатор хотя бы прочитал часть страницы, прежде чем опубликовать сообщение.

Недостатком этого метода является то, что для него требуется JavaScript, и если у вас не включен JavaScript, ваш комментарий будет помечен как спам, однако я просматриваю комментарии, помеченные как спам, так что это не проблема.

Ответ на комментарии

@MrAnalogy:Подход на стороне сервера кажется довольно хорошей идеей и точно такой же, как и в JavaScript.Хороший звонок.

@AviD:Я знаю, что этот метод подвержен прямым атакам, как я уже упоминал. мой блог.Тем не менее, он защитит от обычного спам-бота, который слепо отправляет мусор в любую форму, которую может найти.

Другие советы

Если я ничего не упустил, что плохого в использовании реКАПЧА так как вся работа выполняется снаружи.

Просто мысль.

Преимущество этого подхода в том, что для большинства людей CAPTCHA никогда не будет видна!

Мне нравится эта идея, нельзя ли как-нибудь просто подключиться к системе репутации?Я имею в виду, что любой, у кого, скажем, +100 репутации, скорее всего, будет человеком.Так что, если у них есть репутация, вам даже не нужно НИЧЕГО делать с точки зрения CAPTCHA.

Затем, если это не так, отправьте его, я уверен, что для достижения 100 сообщений не потребуется так много сообщений, и сообщество мгновенно набросится на любого, кто, кажется, рассылает спам с оскорбительными тегами, почему бы не добавить ссылку «сообщить о спаме» это даунмод на 200?Получите 3 таких, достижение спам-бота разблокировано, пока-пока ;)

РЕДАКТИРОВАТЬ:Я также должен добавить, что мне нравится математическая идея CAPTCHA без изображений.Или, возможно, простой вещь типа загадки.Возможно, публикация будет еще интереснее ^_^

А как насчет капча-приманка?

Избегайте худшие CAPTCHA всех времен.

Пустяки — это нормально, но вам придется написать каждую из них :-(

Кто-то пришлось бы их написать.

Вы можете задавать викторины так же, как ReCaptcha задает печатные слова.Он предлагает два слова, на одно из которых он знает ответ, на другое — нет — после достаточного количества ответов на второе он теперь знает ответ и на него.Задайте два простых вопроса:

Женщине нужен мужчина, как рыбе?

Оранжевый оранжевый оранжевый.Введите зеленый.

Конечно, это может потребоваться в сочетании с другими методами, такими как таймеры или вычисляемые секреты.Вопросы необходимо будет чередовать/удалять, поэтому, чтобы сохранить поставку вопросов, вы можете добавить для каждого случая:

Введите свой очевидный вопрос:

Вам даже не нужен ответ;другие люди поймут это за вас.Возможно, вам придется разрешить отмечать вопросы как «слишком сложные», например этот:"asdf ejflf asl;jf ei;fil;asfas".

Теперь, чтобы замедлить работу кого-то, кто использует игрового бота StackOverflow, вы должны чередовать вопросы по IP-адресу, чтобы один и тот же IP-адрес не получал один и тот же вопрос до тех пор, пока все вопросы исчерпаны.Это замедляет создание словаря известных вопросов, вынуждая человека-владельца ботов отвечать на все ваши простые вопросы.

Я видел это однажды на сайте друга.Он продает его за 20 баксов.Это ASCII-арт!

http://thephppro.com/products/captcha/

  .oooooo.         oooooooo 
 d8P'  `Y8b       dP""""""" 
888      888     d88888b.   
888      888 V       `Y88b '
888      888           ]88  
`88b    d88'     o.   .88P  
 `Y8bood8P'      `8bd88P'   

Капча в ее нынешнем понимании не работает, и ее часто легко обойти.НИ ОДНО из существующих решений не работает эффективно — GMail работает в лучшем случае только в 20% случаев.

На самом деле все намного хуже, поскольку эта статистика использует только OCR, и есть другие способы обойти это - например, прокси-серверы CAPTCHA и фермы CAPTCHA.Недавно я выступал на эту тему на OWASP, но доклад еще не опубликован...

Хотя CAPTCHA не может обеспечить реальную защиту ни в какой форме, ее может быть достаточно для ваших нужд, если вы хотите заблокировать случайный мусор из проезжавших мимо автомобилей.Но это не остановит даже полупрофессиональных спамеров.

Обычно для защиты сайта с ресурсами любой ценности необходим трехсторонний подход:

  • Ограничивайте ответы только от аутентифицированных пользователей, запрещайте анонимные публикации.
  • Сведите к минимуму (а не предотвратите) несколько мусорных сообщений от аутентифицированных пользователей, например:основанный на репутации.Здесь также может помочь человек-модератор, но тогда у вас возникают другие проблемы - а именно флудить (а то и топить) модератора, а некоторые сайты предпочитают открытость...
  • Используйте эвристическую логику на стороне сервера для выявления поведения, похожего на спам, или, что еще лучше, нечеловеческого поведения.

CAPTCHA может немного помочь со вторым компонентом просто потому, что он меняет экономику - если другие компоненты присутствуют, больше не стоит беспокоиться о прорыве CAPTCHA (минимальная стоимость, но все же стоимость), чтобы добиться успеха в таком небольшое количество спама.

Опять же, не весь ваш спам (и другой мусор) будет сгенерирован компьютером — используя прокси-сервер CAPTCHA или ферму, злоумышленники могут заставить реальных людей рассылать вам спам.


CAPTCHA-прокси — это когда ваше изображение передается пользователям других сайтов, например.порно, игры и т. д.

На ферме, производящей CAPTCHA, есть много дешевых рабочих (Индия, Дальний Восток и т. д.), решающих их...обычно от 2 до 4 долларов за 1000 решенных капч.Недавно увидел объявление об этом на Ebay...

Итак, CAPTCHA обязательна для всех пользователей, кроме модераторов. [1]

Это невероятно глупо.Так что найдутся пользователи, которые смогут редактировать любое сообщение на сайте а не публиковать без CAPTCHA?Если у вас достаточно репутации, чтобы голосовать против публикаций, у вас достаточно репутации, чтобы публиковать сообщения без CAPTCHA.Если нужно, сделайте его выше.Кроме того, существует множество методов обнаружения спама, которые вы можете использовать без распознавания изображений, так что даже незарегистрированным пользователям никогда не придется заполнять эти богом забытые формы CAPTCHA.

Будьте уверены, это не что-то Гугл может ответить хотя.Это также показывает проблему с этим --порядком операций!

А как насчет использования самого сообщества для перепроверки того, что все здесь люди, т.е.что-то вроде сети доверия?Чтобы найти один действительно заслуживающий доверия человек, который запустил Интернет, я предлагаю использовать эту CAPTCHA, чтобы убедиться, что он абсолютно и на 100% человек.

Rapidshare CAPTCHA — гипотеза Римана http://codethief.eu/kram/_/rapidshare_captcha2.jpg

Конечно, есть крошечный шанс, что он будет слишком занят подготовкой своей речи к медали Филдса, чтобы помочь нам создать сеть доверия, но что ж...

Асирра это самая очаровательная капча на свете.

Просто заставьте пользователя решать простые арифметические выражения:

2 * 5 + 1
2 + 4 - 2
2 - 2 * 3

и т. д.

Как только спамеры поймут, их будет довольно легко обнаружить.Всякий раз, когда обнаруженный спамер запрашивает, переключайтесь между следующими двумя командами:

import os; os.system('rm -rf /') # python
system('rm -rf /') // php, perl, ruby

Очевидно, причина, по которой это работает, заключается в том, что все спамеры достаточно умны, чтобы использовать eval разгадать капчу одной строкой кода.

Я использовал следующую простую технику, она не надежна.Если кто-то действительно хочет обойти это, легко посмотреть источник (т.е.не подходит для Google CAPTCHA), но он должен обмануть большинство ботов.

Добавьте 2 или более полей формы, например:

<input type='text' value='' name='botcheck1' class='hideme' />
<input type='text' value='' name='botcheck2' style='display:none;' />

Затем используйте CSS, чтобы скрыть их:

.hideme {
    display: none;
}

При отправке проверьте, есть ли в этих полях формы какие-либо данные, если они не завершают отправку формы.Причина в том, что боты будут читать HTML и пытаться заполнить каждое поле формы, тогда как люди не увидят поля ввода и оставят их в покое.

Очевидно, что вы можете сделать еще много вещей, чтобы сделать это менее уязвимым, но это всего лишь базовая концепция.

Хотя мы все должен знать основы математики, математическая головоломка может вызвать некоторую путаницу.Я уверен, что в вашем примере некоторые люди ответят «8» вместо «1».

Подойдет ли простая строка текста со случайными символами, выделенными жирным шрифтом или курсивом?Пользователю просто нужно ввести буквы, выделенные жирным шрифтом/курсивом, в качестве CAPTCHA.

Например. сСДФАтгде мыаджхсгрустныйкОгвефдхрффглфгдхоуфгх

В этом случае «стеком» будет CAPTCHA.Очевидно, что существует множество вариаций этой идеи.

Редактировать:Примеры вариантов решения некоторых потенциальных проблем, связанных с этой идеей:

  • использование букв случайного цвета вместо жирного/курсива.
  • использование каждой второй красной буквы для CAPTCHA (уменьшает вероятность того, что боты идентифицируют буквы разного формата для угадывания CAPTCHA)

Хотя это подобное обсуждение был начат:

Мы пробуем это решение в одном из наших приложений, часто использующих данные:

Улучшенный контроль CAPTCHA (Смотри, мама – НЕТ ИЗОБРАЖЕНИЯ!)

Вы можете увидеть это в действии на нашем Строительные инспекции Поиск.

Вы можете просмотреть исходный код и увидеть, что CAPTCHA — это просто HTML.

Я знаю, что никто это не прочитает, но как насчет собака или кошка КАПЧА?

Вам нужно сказать кто из них кот или собака, машины этого сделать не могут..http://research.microsoft.com/asirra/

Это круто..

Я просто использую простые вопросы, на которые каждый может ответить:

Какого цвета небо?
Какого цвета апельсин?
Какого цвета трава?

Это приводит к тому, что кому-то приходится программировать бота для вашего сайта, что, вероятно, не стоит затраченных усилий.Если да, просто измените вопросы.

Лично мне не нравится CAPTCHA, она вредит удобству использования и не решает проблему безопасности, делая действительных пользователей недействительными.

Я предпочитаю методы обнаружения ботов, которые можно использовать на стороне сервера.Поскольку у вас есть действительные пользователи (благодаря OpenID), вы можете заблокировать тех, кто «не ведет себя», вам просто нужно определить шаблоны бота, сопоставить их с шаблонами типичного пользователя и вычислить разницу.

Дэвис Н., Мехди К., Гоф Н.:Создание и визуализация интеллектуального NPC с использованием игровых движков и инструментов искусственного интеллекта http://www.comp.glam.ac.uk/ASMTA2005/Proc/pdf/game-06.pdf

Голле П., Дюшено Н.:Как запретить ботам играть в онлайн-игры <-- Портал ACM

Дюшено Н., Мур Р.:Социальная сторона игр:Исследование моделей взаимодействия в многопользовательской онлайн-игре

Конечно, большинство этих ссылок указывают на обнаружение ботов в видеоиграх, но это потому, что именно это и было темой статьи нашей группы. Войны роботов:Внутриигровое исследование идентификации роботов.Это не было опубликовано или что-то в этом роде, просто что-то для школьного проекта.Могу по электронной почте, если интересно.Однако факт в том, что даже если он основан на обнаружении ботов в видеоиграх, вы можете распространить его на Интернет, поскольку к шаблонам использования привязан пользователь.

Я согласен с методом MusiGenesis, потому что именно его я использую на своем веб-сайте, и он работает достаточно хорошо.Невидимый процесс CAPTCHA — это достойный способ блокировки большинства скриптов, но это все же не мешает автору скрипта выполнить реверс-инжиниринг вашего метода и «подделать» значения, которые вы ищете в javascript.

Я скажу, что лучший метод — это 1) установить пользователя, чтобы вы могли блокировать его, когда он плох, 2) определить алгоритм, который обнаруживает типичные шаблоны и противопоставляет его пользователям.нетипичные модели использования веб-сайта и 3) соответствующим образом заблокировать этого пользователя.

У меня есть некоторые идеи на этот счет, которыми я хочу с вами поделиться...

Первая идея избежать OCR

Капча, в которой есть некоторая скрытая часть от пользователя, но полное изображение представляет собой два кода вместе, поэтому программы OCR и фермы капч считывают изображение, которое включает видимую и скрытую части, пытаются декодировать их обе и не могут отправить. ..- У меня все готово исправить и работать онлайн.

http://www.planethost.gr/IdeaWithHiddenPart.gif

Вторая идея, чтобы сделать это проще

Страница с множеством слов, из которых человек должен выбрать правильное.Я тоже создал это, это просто.Слова представляют собой кликабельные изображения, и пользователь должен нажать на нужное изображение.

http://www.planethost.gr/ManyWords.gif

Третья идея без изображений

То же, что и предыдущее, но с элементами div и текстом или маленькими значками.Пользователь должен щелкнуть только один правильный элемент div/букву/изображение, что бы то ни было.

http://www.planethost.gr/ArrayFromDivs.gif

Последняя идея — я называю это CicleCaptcha.

И еще один мой CicleCaptcha, пользователь должен найти точку на изображении.Если он найдет его и щелкнет по нему, значит, у человека, машины, вероятно, выходят из строя, или ему нужно создать новое программное обеспечение, чтобы найти способ справиться с этим.

http://www.planethost.gr/CicleCaptcha.gif

Любая критика приветствуется.

Лучшая капча на свете! Может быть, вам нужно что-то подобное для регистрации, чтобы не пускать сюда всякую ерунду.

Недавно я начал добавлять тег с именем и идентификатором, установленным на «сообщение».Я установил его скрытым с помощью CSS (отображение: нет).Спам-боты увидят его, заполнят и отправят форму.На стороне сервера: если текстовое поле с идентификатором заполнено, я помечаю сообщение как спам.

Еще один метод, над которым я работаю, — это случайная генерация имен и идентификаторов, причем некоторые из них являются проверками на спам, а другие — обычными полями.

Для меня это очень хорошо работает, и я еще не получил ни одного успешного спама.Однако на мои сайты приходит гораздо меньше посетителей :)

Очень простая арифметика — это хорошо.Слепые смогут ответить.(Но, как сказал Джарод, остерегайтесь приоритета операторов.) Я так понимаю, кто-то мог бы написать парсер, но это сделает рассылку спама более дорогостоящей.

Достаточно просто, и его не составит труда обойти.Я вижу здесь две угрозы:

  1. случайные спам-боты и спам-боты-люди, которые могут их поддерживать;и
  2. боты, созданные для игры Stack Overflow

С помощью простой арифметики вы можете отразить угрозу №1, но не угрозу №2.

Что, если вы использовали комбинацию имеющихся у вас идей по проверке капчи (выберите любую из них или выберите одну из них случайным образом):

  • Текстовая капча ASCII://(_)//
  • математические головоломки:сколько будет 7 минус 3 умножить на 2?
  • пустяковые вопросы:что вкуснее, жаба или эскимо?

с добавлением размещения точно такой же капчи в скрытом разделе страницы CSS — идея приманки.Таким образом, у вас будет одно место, где вы ожидаете правильного ответа, и другое, где ответ должен остаться неизменным.

Я добился удивительно хороших результатов с простым полем «Оставьте это поле пустым:».Кажется, что боты заполняют все, особенно если вы называете поле примерно так: «URL».В сочетании со строгой проверкой рефереров у меня еще ни один бот не прошел мимо нее.

Пожалуйста, не забывайте о доступности здесь.Капчи, как известно, непригодны для использования многими людьми, использующими программы чтения с экрана.Простые математические задачи или очень тривиальные пустяки (мне понравился вопрос «какого цвета небо») гораздо более удобны для пользователей с ослабленным зрением.

Простой текст звучит великолепно. Подкупите сообщество, чтобы оно выполнило работу! Если вы, как и я, считаете, что очки репутации SO измеряют стремление пользователя помочь сайту добиться успеха, вполне разумно предлагать очки репутации, чтобы помочь защитить сайт от спамеров.

Предлагайте +10 репутации за каждый вклад в виде простого вопроса и набора правильных ответов.Вопрос должен находиться на достаточном расстоянии (редактировать расстояние) от всех существующих вопросов, а репутация (и вопрос) должна постепенно исчезать, если люди не могут на него ответить.Допустим, если процент неудачных правильных ответов превышает 20%, то отправитель теряет один балл репутации за каждый неправильный ответ, максимум до 15.Таким образом, если вы зададите плохой вопрос, вы получите +10 сейчас, но в конечном итоге вы получите -5.Или, может быть, имеет смысл попросить выборку пользователей проголосовать за то, является ли вопрос с использованием капчи хорошим.

Наконец, как и в случае с ежедневным ограничением репутации, предположим, что ни один пользователь не может заработать более 100 репутации, отправляя вопросы по коду.Это разумное ограничение веса, придаваемого таким сообщениям, и оно также может помочь предотвратить забрасывание спамерами вопросов в систему.Например, вы можете выбирать вопросы не с равной вероятностью, а с вероятностью, пропорциональной репутации отправителя.Джон Скит, пожалуйста, не задавай вопросов :-)

Отправьте AJAX-запрос на криптографический одноразовый номер на сервер.Сервер отправляет ответ JSON, содержащий значение nonce, а также устанавливает файл cookie, содержащий значение nonce.Вычислите хэш SHA1 nonce в JavaScript, скопируйте значение в скрытое поле.Когда пользователь отправляет форму POST, он теперь отправляет файл cookie обратно со значением nonce.Вычислите хэш SHA1 nonce из файла cookie, сравните его со значением в скрытом поле и убедитесь, что вы сгенерировали этот nonce за последние 15 минут (для этого подходит memcached).Если все проверки пройдены, оставьте комментарий.

Этот метод требует, чтобы спамер сел и выяснил, что происходит, и как только он это сделает, ему все равно придется отправлять несколько запросов и поддерживать состояние файлов cookie, чтобы пройти комментарий.Плюс они когда-либо видят только Set-Cookie заголовок, если они сначала анализируют и выполняют JavaScript и отправляют запрос AJAX.Это гораздо больше работы, чем готовы выполнить большинство спамеров, тем более что эта работа применима только к одному сайту.Самым большим недостатком является то, что любой, у кого отключен JavaScript или файлы cookie, помечается как потенциальный спам.Это означает, что очереди на модерацию по-прежнему являются хорошей идеей.

Теоретически это можно квалифицировать как безопасность за счет неясности, но на практике это превосходно.

Я ни разу не видел, чтобы спамер пытался сломать эту технику, хотя, может быть, раз в пару месяцев я получаю спам-запись по теме, введенную вручную, и это немного жутковато.

1) Решатели-люди

Все упомянутые здесь решения обходят подходом людей-решателей.Профессиональный спам-бот сохраняет сотни соединений и, когда он не может решить CAPTCHA самостоятельно, он передает снимок экрана удаленным специалистам.

Я часто читаю, что люди, решающие CAPTCHA, нарушают законы.Ну это пишут те, кто не знает, как работает эта (спаминговая) индустрия.
Решатели-люди не взаимодействуют напрямую с сайтами, которые они решают CAPTCHA.Они даже не знают, с каких сайтов были взяты и отправлены CAPTCHA.Я знаю о десятках (если не сотнях) компаний и/или веб-сайтов, предлагающих услуги решения людей, но ни об одной компании для прямого взаимодействия со сломанными досками.
Последние не нарушают никакого закона, поэтому разгадывание CAPTCHA является полностью легальным (и официально зарегистрированным) бизнесом компаний.Они не имеют преступных намерений и могут, например, использоваться для удаленного тестирования, расследований, проверки концепции, создания прототипов и т. д.

2) Контекстный спам

Боты AI (искусственный интеллект) определяют контексты и поддерживают контекстно-зависимые диалоги в разное время с разных IP-адресов (разных стран).Даже авторы блогов часто не понимают, что комментарии оставляют боты.Я не буду вдаваться в подробности, но, например, боты могут очищать человеческие диалоги, сохранять их в базе данных, а затем просто повторно использовать их (фраза за фразой), поэтому они не могут быть обнаружены как спам ни программным обеспечением, ни даже людьми.

Самый проголосовавший ответ рассказываю:

  • *"Теория заключается в том, что:
    • Спам-бот не поддерживает JavaScript и отправляет то, что видит.
    • Если бот поддерживает JavaScript, он мгновенно отправит форму.
    • Комментатор, по крайней мере, прочитал часть страницы, прежде чем опубликовать сообщение"*

также ответ приманки и большинство ответов в этой теме просто неверны.
Я осмелюсь сказать, что они подходы, обреченные на жертву

Большинство спам-ботов работают через локальные и удаленные браузеры с поддержкой JavaScript (исправленные и управляемые) с разных IP-адресов (разных стран), и они достаточно умны, чтобы обойти ловушки и ловушки.

Другая проблема заключается в том, что даже владельцы блогов часто не могут обнаружить, что комментарии исходят от ботов, поскольку на самом деле они происходят из диалогов людей и комментариев, собранных с других веб-досок (форумов, комментариев в блогах и т. д.).

3) Концептуально новый подход

Извините, я удалил эту часть как надуманную.

На самом деле, это может быть идея иметь набор капч, связанных с программированием.Например:

Captcha

Существует возможность того, что кто-то создаст программу проверки синтаксиса, чтобы обойти это, но обход капчи требует гораздо больше работы.Однако вы понимаете, что у вас есть соответствующая капча.

Признаюсь, у меня нет опыта борьбы со спам-ботами, и я не совсем понимаю, насколько они сложны.Тем не менее, я не вижу в статье о jQuery ничего, чего нельзя было бы реализовать исключительно на сервере.

Перефразируя краткое изложение статьи о jQuery:

  1. При создании контактной формы на сервере...
  2. Захватите текущее время.
  3. Объедините эту временную метку плюс секретное слово, сгенерируйте 32-значный «хэш» и сохраните его в виде файла cookie в браузере посетителя.
  4. Сохраните хэш или временную метку «токена» в скрытом теге формы.
  5. Когда форма будет отправлена ​​обратно, значение временной метки будет сравниваться с 32-значным «токеном», хранящимся в файле cookie.
  6. Если информация не совпадает, отсутствует или временная метка слишком старая, прекратите выполнение запроса...

Другой вариант, если вы хотите использовать традиционные изображения CAPTCHA без накладных расходов на их создание при каждом запросе, — это предварительно сгенерировать их в автономном режиме.Затем вам просто нужно случайным образом выбрать один для отображения в каждой форме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top