1. Начало
  2. Сигурност и защита
  3. Сигурност на сайта
  4. Обхождащи роботи, блокиране на лоши ботове

Обхождащи роботи, блокиране на лоши ботове

Сайтовете денонощно се обхождат от ботове (роботи), най-често на търсачки, като например Googlebot , msnbot, YandexBot, bingbot и други. Тези роботи индексират съдържанието на сайтовете, с цел да предоставят по-точни и актуални резултати при търсене. Те се стремят да обходят възможно най-много, а ако е възможно и всички страници от сайта ви. Вие можете да изберете кои директории да не се обхождат от тези ботове, като използвате robots.txt файл в основната (root) директория на сайта.

Преди да започне обхождане на сайта, роботът проверява robots.txt файла, от където разбира кои директории могат да бъдат индексирани и кои не. Синтаксиса на файла е доста опростен:

User-agent: *
Disallow: /

В User-agent се описва за кой бот важат изброените ограничения, а в Disallow се изброяват забранените директории. В посочения пример с wildcard (*) се посочва, че правилата важат за абсолютно всички ботове, а Disallow: / забранява достъпа до основната директория, т.е. и до всички нейни поддиректории. Ако пропуснете „/“ в Disallow, това ще значи, че няма ограничение за директория и ботовете са свободни да обхождат всички директории в хостинг акаунта ви.

За да ограничите достъп на Googlebot до /admin директорията например, robots.txt файла трябва да изглежда по следния начин:

User-agent: Googlebot
Disallow: /admin

Можете да забраните достъп и до конкретен файл:

User-agent: Googlebot
Disallow: /DirectoryName/FileName.html

Ако не сте сигурни за точното име на бота, който желаете да ограничите, можете да го видите в статистиката Awstats или в Raw Access Log-а на сайта. Подробна информация за robots.txt файла и начина му на употреба можете да намерите на следния адрес:

https://www.robotstxt.org/robotstxt.html

В сайта е включен също списък на голям брой роботи и кратко описание за всеки.

Лоши ботове

Съществуват и други роботи, чието индексиране не носи позитиви за по-добро позициониране на сайта в мрежата, а напротив – сайта се сканира, за да се направи опит за злоупотреба с него. Това включва пробив в сигурността, публикуване на СПАМ в контактни форми, събиране на имейл адреси, на които после се изпраща СПАМ и много други. Такива роботи наричаме лоши ботове. За тях може да използваме .htaccess файла, ако желаем да ограничим достъпа им.

Ефективен метод за блокиране на лоши роботи е използването на User-agent- а, с който се представя робота. Може да се ограничи този User-agent с Rewrite правила в .htaccess:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(.*)Surfbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)ChinaClaw [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)Zeus [NC]
RewriteRule .* - [F]

В посочения пример роботите Surfbot, ChinaClaw и Zeus ще получат съобщение 403 Forbidden при опит да достъпят съдържанието на директорията, в която е поставен .htaccess файла. Можете да добавяте и още роботи, като е необходимо да се добави [OR] (или) в края на всеки ред, освен на последния User-agent. (Все пак да споменем, че добавянето на твърде много правила в .htaccess файла може да забави зареждането на сайта в някои случаи.)

При такова блокиране е препоръчително да съществуват страниците за грешки 404 Not Found и 403 Forbidden. В случай, че тези страници се генерират динамично от системата ви, това може да доведе до допълнително излишно натоварване.

Друг начин за блокиране по User-agent е с използване на SetEnvIfNoCase отново в .htaccess файла. Ето и пример:

SetEnvIfNoCase User-Agent "^(.*)Surfbot" bad_bot
SetEnvIfNoCase User-Agent "^(.*)ChinaClaw" bad_bot
SetEnvIfNoCase User-Agent "^(.*)Zeus" bad_bot
<Limit GET POST HEAD>
 Order Allow,Deny
 Allow from all
 Deny from env=bad_bot
</Limit>

В първата част се дефинират User-agent-и, които ще бъдат разпознати като лоши, а във втората част се блокират всички заявки (GET, POST, HEAD) от такива роботи.

Обновена: 12.10.2022
Беше ли Ви полезна тази статия?

Вижте още