Похоже, что ваше текущее решение на самом деле неплохо.
Мы внедрили тот, в котором серверный код, который доставлял содержимое представления, также обновил таблицу базы данных, в которой сохранен URL-адрес (фактически специальный идентификационный код для URL-адреса, поскольку URL-адрес может изменяться со временем) и количество просмотров.
На самом деле это была система с постами, написанными пользователями, которые другие могли комментировать, но это в равной степени относится к ситуации, когда вы являетесь единственным пользователем, создающим посты (если я правильно понимаю ваше описание).
Нам пришлось сделать следующее, чтобы минимизировать (не исключить, к сожалению) перекос.
- Для зарегистрированных пользователей каждый пользователь может добавить только одну точку обзора к сообщению. КОГДА-ЛИБО. Никаких исключений.
- Для анонимных пользователей каждый IP-адрес может добавлять только одну точку обзора к сообщению каждый месяц. Это было немного менее надежно, поскольку IP-адреса могли быть «общими» (NAT и т. Д.) С нашей точки зрения. Причиной, по которой мы ослабили приведенное выше требование «НИКОГДА», была причина разделения
- Сами посты ограничивались добавлением одной точки обзора за период времени (период начинался с низкого уровня (скажем, 10 секунд) и постепенно увеличивался (скажем, до 5 минут), так что новым постам было разрешено накапливать просмотры быстрее из-за к их новизне). Это позаботилось о большинстве спам-ботов, так как мы обнаружили, что они имеют тенденцию атаковать еще долго после создания поста.
- Удаление спам-комментария к сообщению или неудачная попытка обойти CAPTCHA (см. Ниже) автоматически добавило этот IP-адрес в черный список и сократило количество просмотров для этого сообщения.
- Если IP-адрес из черного списка не пытался оставить комментарий в течение N дней (настраивается), он был удален из черного списка. Это правило и предыдущее правило сводили к минимуму ручное вмешательство в ведение черного списка, нам оставалось только отслеживать ответы на спам.
- CAPTCHA. Это решило много наших проблем со спамом, тем более что мы не просто полагались на вещи типа OCR (например, «что это за слово ->« необязательно »), мы фактически задавали вопросы (например,« что такое 2 »). умножить на половину от 8? "), что сломает немых ботов распознавания персонажей. Это не победит орды дешёвых рабочих CAPTCHA (если их математика не очень плохая :-), но улучшения от no-CAPTCHA были впечатляющими.
- Пользователи, вошедшие в систему, не подпадали под действие CAPTCHA, но спам немедленно удалил учетную запись, занес их в черный список IP-адресов и вычел их мнение из сообщения.
- Мне стыдно признаться, что мы на самом деле не сбрасывали со счетов веб-сканеры (надеюсь, клиент не читает это :-). Честно говоря, они, вероятно, только добавляют минимальное количество точек обзора каждый месяц из-за нашего правила IP-адресов (если только они не набивают нас несколькими IP-адресами).
Так что, в принципе, я предложил следующие возможные улучшения. Конечно, вы всегда должны следить за тем, как они работают, чтобы увидеть, работают они или нет.
- CAPTCHA.
- Автоматические обновления черного списка в зависимости от поведения пользователя.
- Ограничение количества просмотров увеличивается с одинаковых IP-адресов.
- Ограничение количества просмотров увеличивается до определенной скорости.
Ни одна из выбранных вами схем не будет идеальной (например, наше правило одного месяца), но, пока все посты следуют одному и тому же набору правил, вы все равно получите хорошую сравнительную ценность. Как вы сказали, точность должна быть только приблизительной.