jQuery Captcha с использованием Drag-n-Drop: Насколько это защищено от ботов? - PullRequest
2 голосов
/ 01 сентября 2011

В настоящее время я использую технику CAPTCHA, которая требует, чтобы посетитель перестроил некоторые элементы в «правильный» порядок, прежде чем продолжить.Вот jsFiddle с моей техникой .

Мне интересно, насколько это защищено от ботов?

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

$("div.cItem"):contains('0').appendTo('#captcha');
$("div.cItem"):contains('1').appendTo('#captcha');
$("div.cItem"):contains('2').appendTo('#captcha');
$("div.cItem"):contains('3').appendTo('#captcha');
$("div.cItem"):contains('4').appendTo('#captcha');
$("div.cItem"):contains('5').appendTo('#captcha');

ОБНОВЛЕНИЕ

Извините, носсылка на нефункциональную ссылку jsfiddle.Это исправлено.

Ответы [ 6 ]

2 голосов
/ 01 сентября 2011

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

Да.Было бы довольно тривиально создать скрипт для автоматического изменения порядка в div.

Тем не менее, боты обычно не используют Javascript.Они просто создают запрос POST.Если можно отправить форму без включенного Javascript, то это не очень эффективно.

Если вам требуется включить Javascript для отправки формы, это ужасно для доступности.

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

1 голос
/ 01 сентября 2011

Я бы просто программно построил все значения POST, которые вы ищете..это.

1 голос
/ 01 сентября 2011

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

0 голосов
/ 01 сентября 2011

Невозможно сказать из вашего примера, поскольку он содержит только пользовательский интерфейс.

То, что делает его доказательством бота, - это способ отправки результата на сервер. Бот не будет использовать Javascript на странице, чтобы обойти CAPTCHA, он просто попытается вернуть правильный результат на сервер. Результат не может быть определен сам по себе, то есть вы не должны просто отправлять "012345" обратно на сервер. Идентификационные данные блоков должны быть случайными, а их количество нелегко определить, просто прочитав содержимое элементов.

Примечание: Сортировка наугад не очень хороший способ перемешать элементы. A Фишер-Йейтс shuffle прост в реализации.

0 голосов
/ 01 сентября 2011

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

0 голосов
/ 01 сентября 2011

Я думаю, что не так много ботов (классических, использующих curl, ...), использующих javascript, поэтому я думаю, что это справедливо.

ОТ: Могу ли я использовать его для своего проекта? Выглядит красиво и пуленепробиваемо: P

...