Как предотвратить просмотр просмотров страниц?

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

Итак, как вы мешаете этому, сохраняя при этом квазиточное подсчет?

Я придумал следующую "схему":

Пользователь может влиять только на просмотр страницы один раз за сеанс. Это то, чего я обычно ожидал. Если пользователь снова вернется на сайт и снова просмотрит страницу, он должен считаться другим видом страницы.

Проблема заключается в том, что это увеличивает видимость просмотра страницы до script, который очищает свои файлы cookie перед каждым запросом. Самое простое решение этой проблемы - сохранить ip-адрес и разрешить только один и тот же ip-адрес увеличивать число страниц один раз. Это, однако, имеет несколько серьезных недостатков; Прежде всего, это потенциально займет много хранения, и, во-вторых, это помешает пользователям в больших локальных сетях увеличивать количество страниц. Наконец, пользователь не может пересматривать страницу и увеличивать просмотр страницы более одного раза с одного и того же ip. Я могу жить с этим, но лучше жить без него.

Лучший способ, с помощью которого я могу подняться с головы, - сохранить последние X-IP-адреса и не позволять никому из этих ip-адресов влиять на количество просмотров страницы. Это фактически остановило бы любой (простой) script от увеличения количества просмотров страницы. Кроме того, вероятно, было бы хорошей идеей добавить задержку к отображению фактического количества просмотров (в основном, сохранение двух отсчетов и поля даты и времени, когда счетчик "отображения" был последним обновлен с "фактическим" значением, счет, то, что я считаю, делается на сайтах SE).

Это не идеальное решение, поэтому я буду рад услышать ваши предложения и/или комментарии.

Ответ 1

Не мешать: контролировать и обрабатывать.

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

Ответ 2

Я думаю, что вы должны учитывать также и характеристики браузера. Фингерпринтинг браузера был выполнен до и хорошо известен. Затем вы можете выяснить некоторые довольно продвинутые эвристики при определении того, пытается ли тот же пользователь играть в игру. Но не публикуйте, конечно, что вы используете отпечатки пальцев браузера. Кроме того, он не остановит режим инкогнито, но я просто пытаюсь дать вам еще один путь мысли, помимо ваших текущих стратегий, ориентированных на IP.