@zaart

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

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
DKLINE Санкт-Петербург
от 120 000 до 150 000 ₽
SaveTime Москва
от 170 000 до 250 000 ₽
23 июн. 2021, в 12:31
500 руб./в час
23 июн. 2021, в 12:27
1800 руб./за проект
23 июн. 2021, в 12:12
1000 руб./в час