Что можно использовать вместо этого, если captcha небезопасен?

Насколько я читал из здесь, тот факт, что captchas не на 100% безопасен. Что можно использовать вместо captcha? Как программист, как вы думаете? как решить эту проблему?

Изменить: спасибо за все ответы.

Ответ 1

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

Если ваш сервер хочет убедиться, что человек находится на другом конце TCP-протокола, не существует теста turing-test, который в конечном итоге не будет побежден (и, вероятно, никогда не будет такого). CAPTCHA обречен, это всего лишь вопрос о том, как скоро.

Конечно, это не значит, что это касается человеческой аутентификации. Это просто означает, что автоматические тесты turing, так же удобные, как они, не будут эффективным способом достижения этого в течение очень долгого времени.

Ответ 2

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

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

Ответ 3

Дальнейшее объяснение предложения Бориса:

случайным образом сгенерированный скрытый ввод, который должен иметь значение null

Идея состоит в том, что ваша форма содержит несколько невидимых входов, их тип, вероятно, не должен быть скрытым, но они должны быть невидимыми для человека (например, установить ширину или высоту до 0). Первоначальное содержимое этих полей должно быть пустым. Если человек заполняет форму, поле будет пустым, потому что человек не может видеть поле, чтобы в него что-либо вставить, но если бот заполнит форму, поле будет (возможно) не пустым, потому что боты обычно просто слепо вводите что-то в каждое поле.

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

Ответ 4

Хотя captchas можно сломать, Capthca только добавить к безопасности reCapthca очень хорошо, и обученный OCR, такой как Tesseract, будет иметь очень ограниченный успех в его нарушении. Тем не менее, есть наряды, которые используют Human Computation, чтобы разбить их на гроши. Но это делает атаки против вашей системы более дорогими, и это лучшее, на что вы можете надеяться. Криптография может быть разбита с помощью грубой силы. Все хэши паролей являются гибкими, но мы по-прежнему используем их, потому что это затрудняет атаку.

Большинство "решений" в этом потоке "" Security While Obscurity", и вы должны с осторожностью относиться к этим быстрым исправлениям сложная проблема.

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

В настоящий момент на моем сайте я выбрал простые вопросы. Некоторые вопросы, которые я использовал в прошлом:

  • Что два в силе одного?
  • Что такое 2 + 2? (этот был взломан, хотя и не использовал его)
  • Как называется этот домен?
  • Какова сумма двух и двух?

Некоторые другие приятные могут быть

  • введите "материал" в этот флажок как проверку спама.
  • Как выглядит 1337? (используя только буквы)
  • текущий год?

Ответ 8

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

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

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

Это не сработает, если кто-то специально нацеливает ваш сайт.

Ответ 9

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

вы можете создать файл cookie при перемещении мыши с javascript или jquery и на стороне сервера проверить, существует ли файл cookie, потому что только у людей есть мышь, cookie может быть создан только ими cookie может быть отметкой времени или токеном, который может быть проверен

Ответ 10

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

Затем зашифруйте данные координат.