Что мешает людям использовать чужую CAPTCHA как свою собственную?

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

Мне кажется, что такую ​​систему просто реализовать:

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

Это обычное дело? Если нет, то почему? Что можно сделать, чтобы предотвратить это?


person Eva    schedule 08.07.2013    source источник
comment
Я не знаю, но если вы являетесь законным пользователем капчи, то делать это все равно, что стрелять себе в ногу.   -  person Rafael    schedule 08.07.2013


Ответы (1)


Получение капчи. Предположим, что можно легко получить точную визуальную информацию о капче с иностранного хоста. Для этого вы должны пройти проверку рефералов (большинство браузеров (управляемых людьми) позволяют отправлять http_referer). Вам также придется сохранить session_id и secret из hidden input. Проверка результата. Внешний хост должен связать сохраненные переменные с переменными, связанными с сеансом вашего первого запроса, что требует от вас реализации хитрых cURL методов. Вам придется обрабатывать несколько параллельных запросов, все с вашего единственного IP-адреса.

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

Предотвращает

  1. http_referer проверка
  2. ограничить запросы для одного IP, например, 5 минут
  3. хорошая обработка сеанса и хитрые куки
  4. это не невозможно реконструировать javascript, но чем сложнее ваш javascript, ...
  5. вы должны найти образец, который распознает результат на чужом хосте. самой простой подписью может быть поле заголовка Location, ведущее либо к /path/success.html, либо к /path/tryagain.php

Задача:

Я нашел время, чтобы подготовить пример: http://woisteinebank.de/test/

В этом примере я прикрепляю ключи к session_id(); и сохраняю их в базе данных. Через session_regenerate_id(); у меня на каждый запрос идет свежая сессия. В check.php я сравниваю значения базы данных со значениями $_GET.

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

person Daniel W.    schedule 08.07.2013
comment
что мешает сделать снимок экрана? - person Eva; 08.07.2013
comment
дайте мне несколько минут для демонстрации - person Daniel W.; 09.07.2013
comment
Спасибо за пример, Дэн, но я не понимаю, как это мешает тому, о чем я говорю. Сессия не изменится, если я что-то здесь не упустил (извиняюсь, если я) - person Eva; 09.07.2013
comment
Я вижу твои новости, Дэн. Хотя я думаю, что у вас есть несколько интересных идей, я считаю, что вы неправильно понимаете, что я имею в виду, говоря, что изображение передается пользователю на сайте. Я имею в виду, что сценарий / программа (которая может использовать прокси-службу, такую ​​как Tor) копирует изображение, а затем передает его пользователю для решения. Как только информация решена, решение вводится тем же сценарием. В этом случае идентификаторы сеанса не имеют никакого отношения к решению CAPTCHA. Хотя это может быть более ресурсоемким, решение CAPTCHA может быть прибыльным, например: рассылка спама - person Eva; 09.07.2013
comment
К сожалению, в последнее время я немного занят, но когда у меня появится время, я постараюсь разместить какой-то пример на Github. - person Eva; 09.07.2013
comment
Думаю, я понял, что вы имеете в виду, но есть много обстоятельств, которые не позволяют вам эффективно злоупотреблять капчами. Привязать IP к сеансу, запросить кодировку через tor, после отправки для решения с другим ip = ›недопустимый запрос. Возможно все, что угодно, но не для эффективного злоупотребления капчами. Еще интересный вопрос! Надеюсь, что другие тоже поделятся своими идеями. - person Daniel W.; 09.07.2013