Стоп боты без капчи - с изюминкой - PullRequest
3 голосов
/ 18 декабря 2011

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

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

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

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

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

Спасибо.

Ответы [ 3 ]

5 голосов
/ 18 декабря 2011

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

3 голосов
/ 18 декабря 2011

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

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

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

b) Вы можете использовать JavaScript, чтобы проверить, действительно ли была нажата мышь.

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

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

И другие подобные вещи.

1 голос
/ 18 декабря 2011

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

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

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

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

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

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

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