Как средствами PHP защититься от накрутки кол-ва загрузок файла?
При каждой загрузке файла поле downloads увеличивается на 1.
Статистика конечно ведется, но очень легко накрутить ее просто перейдя огромное кол-во раз по ссылке с загрузкой файла.
Как делают защиту от накруток в таких случаях?
Мои идеи такие: 1) Разрешить загружать файл не чаще чем раз в N секунд. (Ужасная идея)
2) Раздавать файл всегда, но увеличивать счетчик не чаще раза в N секунд. (Начинает теряться смысл счетчика)
3) Увеличивать счетчик только если с момента загрузки конкретного файла с этого IP прошло более N секунд. (Довольно большая нагрузка на бд, при каждом запросе файла: поиск по IP, ID файла и времени большего чем N сек. от loaddate. В cron каждые N минут чистить этот лог загрузок).
Можно я, можно я? Мне видится отсев именно по ip верным потому, что за одним ip обычно находится некая общность людей, и скачанный ими всеми файл вполне может быть скачан только раз. И да, если брать вариант с защитой по куке, то все совсем плохо будет с накрутками. Есть прям специализированные боты для накруток скачиваний файлов.
Ниже предложено парсить логи на предмет размера скачанного файла - это дополнительно даст некоторую защиту от накрутки ботами, которые, как я подозреваю, не скачивают файл до конца.