Скажем, у меня есть сайт со страницами. Страницы ранжируются в зависимости от количества просмотров. Хорошо, чтобы страница была высоко оценена, потому что она будет показываться выше в моих результатах поиска. Следовательно, автор страницы может попытаться настроить систему, чтобы увеличить количество просмотров этой конкретной страницы.
Итак, как вы можете предотвратить это, сохраняя квази точный счет?
Я придумал следующую «схему»:
Пользователь может влиять на просмотр страницы только один раз за сеанс. Это то, что я обычно ожидаю. Если пользователь позже вернется на сайт и снова просмотрит страницу, он будет считаться другим просмотром страницы.
Проблема в том, что это делает приращение просмотра страницы уязвимым для скрипта, который очищает свои куки перед каждым запросом. Самым простым решением этой проблемы было бы сохранить IP-адрес и разрешить одному и тому же IP-адресу увеличивать количество страниц только один раз . Это, однако, имеет несколько основных недостатков; Во-первых, это потенциально заняло бы много места, а во-вторых, не позволило бы пользователям в больших локальных сетях увеличивать количество страниц. Наконец, пользователь не может повторно посетить страницу и увеличить просмотр страницы более одного раза с одного и того же ip. Я могу жить с этим, но лучше жить без этого.
Лучший способ, с помощью которого я могу придумать, - сохранить последние X ip-адресов и не позволить никому из этих ip-адресов повлиять на количество просмотров страниц . Это эффективно остановит любой (простой) скрипт для увеличения количества просмотров страниц. Кроме того, вероятно, было бы неплохо добавить добавление задержки к отображению фактического количества просмотров (в основном, с двумя счетами и полем даты и времени, когда счетчик «отображения» в последний раз обновлялся с помощью «фактического» счета) что-то, что я считаю, сделано на сайтах SE).
Это не идеальное решение, поэтому я был бы рад услышать ваши предложения и / или комментарии.