@zaart

Как ограничить количество попыток для пользователя?

Здравствуйте!

Есть у меня одна форма обработки, она доступна для авторизированных пользователей и анонимных. Я хочу сделать ограничение обращений к этой форме. 10 раз в день.

Если с авторизированными пользователями я понимаю, как это сделать, то с анонимными у меня нет идей :(

Поделитесь, пожалуйста идеями реализации!
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
@HellWalk
Итак, у вас есть какой-то ресурс, к которому вы хотите сделать ограниченный доступ неавторизованным пользователям (с авторизованными все понятно):

1. Сразу нужно понимать, что сделать 100% работающий вариант для всех - невозможно, можно только максимально усложнить спамерам (я бы именно к спаму отнес такую задачу) жизнь.
2. Чтобы реализовать это, нужно собрать максимум информации об анонимном пользователе (сохранить эти данные и по ним пытаться понять, новый это анонимный посетитель, или старый):
- Самое банальное - куки на фронте
- Чуть менее банальное, но тоже легко обходится - ip
- Дальше можно взять такие параметры, как window.navigator.userAgent с фронта
- На беке брать $_SERVER['PHP_AUTH_USER']
- И еще есть всякие хитрые способы, например, кешировать картинку в браузере юзера, со специальным токеном, и по нему проверять. На память не вспомню статью на хабре, но поискать можно

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

Как вам правильно сказали - компании типа Яндекса и Гугла тратят миллионы для борьбы со спамерами, и 100% результата не достигли, не нужно думать, что у вас это получится. Но попробовать можно - опыт будет полезный.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы