@AlpineMilk

Система лайков без авторизации?

Всем привет! Есть задача, сделать кнопку "Мне нравиться" под статьёй. Но проблема в том, что на сайте нет авторизации для пользователей, как быть в этом случае? Я думал сделать с помощью сессий, верное ли это решение? Или стоит использовать какой либо другой способ? И если все же делать с помощью сессий то как это организовать? Создать сессию и указать ей большой период времени? В интернете находил только статьи с авторизацией, если у кого нибудь есть пример без авторизации прошу поделится)
  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Через куки выставляете флаг, что он уже голосовал.
2. На сервере - записывайте IP и блокируйте на 6 часов.
3. На сервере каждые 24 часа отсеивайте (нормализуйте показатель) "накрутку": когда средняя периодичность оценки материала (например, 1 час) значительно превышает исследуемый интервал (т.е. голосовали часто; например, каждые 5 секунд на протяжении любого промежутка времени). Т.е., ищем явное (более 20-30% от среднего) среднестатистическое модульное отклонение среднего интервала оценки в сегменте (временном интервале) голосов с высокой частотой. Нормализуем к одному голосу и обновляем показатель.
В целом - всё..

PS: Есть более сложные варианты реализации с fingerprint2, evercookie и аналитикой просмотров и переходов (всё в совокупности).

PS2:
1. Геоблок - т.е. учитывать только определённые страны/регионы по IP-адресу (добавил Скворцов - Спасибо!)
2. PROXY-чекер: проверка пакета на содержание PROXY-заголовков. Разумеется, только transparent-proxy, т.е. не анонимные, которые передают реальный IP.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
ruvasik
@ruvasik
https://www.bryce.ru
Смысл?
С помощью кук (с помощью которых запоминается сессия, если не передается в get параметре)
Для "надежности" можно записывать идентификатор пользователя еще в localStorage.
Ответ написан
xmoonlight дал исчерпывающий ответ, но если вы хотите уберечься от накрутки, то сделайте дополнительную проверку на юзер агент (хотя бы его наличие) и геоблок (голосовать смогут все, но голос будет учитываться лишь у юзеров, страна чьего IP есть в вайтлисте)
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы