Как запретить ботам увеличивать счетчик загрузок файлов в PHP?

StackOverflow https://stackoverflow.com/questions/235558

  •  04-07-2019
  •  | 
  •  

Вопрос

Когда пользователь нажимает ссылку для загрузки файла на моем веб-сайте, он переходит на этот PHP-файл который увеличивает счетчик загрузок для этого файла, а затем header() перенаправляет их к фактическому файлу.Однако я подозреваю, что по ссылке для скачивания переходят боты, поэтому количество загрузок неточно.

  • Как сообщить ботам, что им не следует переходить по ссылке?
  • Есть ли способ обнаружить большинство ботов?
  • Есть ли лучший способ подсчитать количество загрузок файла?
Это было полезно?

Решение

robots.txt: http://www.robotstxt.org/robotstxt.html

Не все боты уважают это, но большинство уважают.Если вы действительно хотите запретить доступ через ботов, сделайте ссылку на него POST, а не GET.Боты не будут переходить по URL-адресам POST.(То есть используйте небольшую форму, которая отправляет сообщение на сайт, который приведет вас к соответствующему URL-адресу.)

Другие советы

Я думаю, что ответа Годеке в файле robots.txt будет достаточно.Если вы абсолютно не можете иметь ботов на своем счетчике, я бы рекомендовал использовать файл robots в сочетании с увеличением количества кликов с помощью некоторых обычные пользовательские агенты роботов.

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

Годеке прав, robots.txt — это первое, что нужно сделать, чтобы боты не загружались.

Что касается подсчета, то это действительно проблема веб-аналитики.Разве вы не ведете журналы доступа к www и не пропускаете их через аналитическую программу, например Вебалайзер или AWStats (или модные альтернативы, такие как Webtrends или Urchin)?На мой взгляд, это лучший способ сбора такого рода информации, потому что это просто и нет PHP, перенаправления или другого снижения производительности при загрузке пользователем файла.Вы просто используете журналы Apache, которые все равно сохраняете.(И grep -c даст вам быстрый и грязный подсчет для конкретного файла или шаблона подстановочных знаков.)

Вы можете настроить свое программное обеспечение для статистики так, чтобы оно игнорировало обращения ботов или определенных пользовательских агентов и других критериев (и если вы измените свои критерии позже, вы просто повторно обработаете старые данные журнала).Конечно, для этого необходимо, чтобы у вас были все ваши старые журналы, поэтому, если вы выбрасывали их чем-то вроде logrotate вам придется начать без каких-либо исторических данных.

Вы также можете обнаружить вредоносных ботов, которые не будут учитывать файл robots.txt, используя http://www.bad-behavior.ioerror.us/.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top