Остановите ботов без капчи - с изюминкой


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

Представьте себе кнопку (html-кнопку) на веб-сайте, которая после того, как на нее нажали определенное количество раз, даст пользователю "точку". Баллы хранятся в базе данных для многих пользователей, и эти баллы могут передаваться между учетными записями. Я не хочу, чтобы кто-то просто делал быстрый макрос, чтобы продолжать нажимать на кнопку пока они спят, и поэтому мне нужно какое-то решение. Вот варианты, которые, я думаю, имеют некоторый потенциал:

  1. Используйте повторную запись для каждого отдельного раза, когда они хотят нажать кнопку (болезненно).
  2. Используйте файлы cookie и recaptcha, чтобы разрешить им 10 кликов (скажем), но затем запрашивает подтверждение recaptcha. (они могли бы просто удалить файл cookie).
  3. Используйте альтернативу капче, которая не слишком болезненна.

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

Что вы думаете? Кроме того, возможно ли вообще, чтобы система баллов была почти на 100 % недоступна/недоступна для взлома? Очень важно, чтобы система была безопасной. Есть ли у вас какие-либо потенциальные проблемы с такой идеей?

Спасибо.

Author: user1104147, 2011-12-18

3 answers

Вместо кнопки создайте интерактивное изображение с целью. Сделайте изображение динамичным, а целью должно быть что-то указанное в другом месте страницы (возможно, чуть выше изображения). Так, например, один раз это может быть "Нажмите на квадрат" с квадратом и треугольником, отображаемыми на изображении. В следующий раз это может быть "Щелчок за пределами круга" с кружком в нижней половине изображения. Возможности безграничны. (Я бы воздержался от использования цвета в качестве единственной подсказки, из соображений для дальтоников.) Любой бот должен был бы знать, какие координаты отправлять обратно, чтобы имитировать щелчок мыши в нужной целевой области.

 4
Author: Ted Hopp, 2011-12-18 05:36:31

Я думаю, что невозможно сделать любую систему на 100% неуязвимой. Тем не менее, вы можете сделать его очень сложным для пользователя, чтобы "макро" его.

Для этого вы можете использовать комбинацию решений.

A) Вы можете настроить скрытое поле формы со значением "", которое вы проверите при отправке, чтобы увидеть значение. Боты обычно входят, заполняя каждое поле формы данными, и это защитит их от них.

Б) Вы можете использовать javascript, чтобы проверить, действительно ли мышь была щелкнул.

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

D) Добавляйте капчу каждые X кликов.

И многое другое в этом роде.

 3
Author: Indranil, 2011-12-18 05:21:54

Лично я бы настроил его на:

  1. После 10 последовательных кликов в одном и том же сеансе заставьте пользователя ввести какую-то математическую проверку (т. Е. сгенерировать 2 случайных числа, заставить пользователя сложить/вычесть их вместе и ввести ответ в поле ввода).

  2. Каждые 20 кликов запрашивайте заполнение капчи.

  3. Сбросьте счетчик. Это позволяет системе всегда давать им какую -то проверку каждые 10 последовательных кликов.

Ан ненавязчивую систему довольно сложно создать.

Кроме этого, вы могли бы:

  • Разрешать только определенное количество кликов в минуту
  • Сохраняйте средние клики/минуту для каждого пользователя в базе данных, чтобы вы могли просмотреть и дисквалифицировать/удалить баллы у пользователей, которые злоупотребляют системой.
 1
Author: Nick, 2011-12-18 05:40:37