Promocja: pl – 5 PLN/rok | eu – 5 PLN/rok | com – 40 PLN/rok
Sztuczna Inteligencja w wyszukiwarce domen Aktywuj
CloudHosting Pay-Per-Use Sprawdź

Jak korzystając z .htaccess zablokować szkodliwym botom dostęp do strony WWW?

 

Czym są boty?

Roboty internetowe, zwane również botami, codziennie odwiedzają strony internetowe, tym samym generując na nich dodatkowy ruch. Wykonują mniej lub bardziej pożądane czynności, takie jak np. poszukiwanie adresów e-mail i luk w zabezpieczeniach stron czy też zbierają informacje o stronach i przesyłają je do wyszukiwarek. Ponieważ źle skonfigurowane lub szkodliwe boty działają bez kontroli, mogą mieć wpływ na przekraczanie parametrów bezpieczeństwa Twojego serwera.

Wiele spośród szkodliwych botów można jednak skutecznie zablokować. Wpłynie to m.in. na zmniejszenie ilości spamu, a także znacznie obniży zużywany na serwerze transfer. Jednym ze sposobów blokady ich działania jest wprowadzenie zbioru specjalnych reguł do pliku robots.txt na serwerze FTP. Nie zawsze okazuje się to w pełni skuteczną metodą, ponieważ część botów nie czyta tego pliku. Większą efektywność działania można osiągnąć, stosując blokadę dostępu do serwera po nazwie bota, w pliku .htaccess. Dzięki temu, roboty używające do swojej identyfikacji tzw. user agenta, będą otrzymywały kod http 403, czyli dostęp zabroniony.

Plik .htaccess znajduje się najczęściej w katalogu z plikami strony internetowej. Aby go odszukać, należy zalogować się do serwera poprzez FTP (Sprawdź: WinSCP – konfiguracja programu do połaczeń sFTP) i przejść do właściwego katalogu, gdzie znajdują się pliki naszej strony. Zalecane jest skopiowanie pliku .htaccess na dysk przed jego edycją, aby możliwe było przywrócenie jego oryginalnego stanu, jeżeli okazałoby się to z jakiś powodów konieczne.

 

Zastosowanie reguły blokowania botów

Po otwarciu pliku .htaccess do edycji, należy umieścić w nim poniższe reguły:

#Rules to block bad bots from accessing web pages on your site.
#Remove or add more rules as per your needs.
BrowserMatchNoCase "user_agent" bots

Order Allow,Deny
Allow from ALL
Deny from env=bots

Reguła BrowserMatchNoCase pozwala na dodawanie kolejnych nazw agenta botów. Chcąc zablokować dostęp innym botom, należy dodawać kolejne wiersze reguły, wstawiając w miejsce "user_agent" ich właściwe nazwy.

Przykładowa lista zablokowanych botów będzie wyglądała następująco:

#Rules to block bad bots from accessing web pages on your site.
#Remove or add more rules as per your needs.
BrowserMatchNoCase "Baiduspider" bots
BrowserMatchNoCase "SemrushBot" bots
BrowserMatchNoCase "Yandex" bots
BrowserMatchNoCase "BLEXBot" bots
BrowserMatchNoCase "AhrefsBot" bots
BrowserMatchNoCase "DotBot" bots
BrowserMatchNoCase "Exabot" bots
BrowserMatchNoCase "SeznamBot" bots
BrowserMatchNoCase "aiHitBot" bots
BrowserMatchNoCase "spbot" bots
BrowserMatchNoCase "MJ12bot" bots
BrowserMatchNoCase "oBot" bots
BrowserMatchNoCase "DeuSu" bots
BrowserMatchNoCase "ia_archiver" bots
BrowserMatchNoCase "MetaURI" bots
BrowserMatchNoCase "FlipboardProxy" bots

Order Allow,Deny
Allow from ALL
Deny from env=bots

 

Jak sprawdzić nazwy user agentów atakujących nasz serwer?

Jeśli nie wiemy, jakie dokładnie boty atakują nasz serwer, możemy to sprawdzić pobierając Dziennik dostępu czyli tzw. Access logi serwera. Są one dostępne w panelu zarządzania serwerem CloudHosting Panel.

W celu pobrania takiego zestawienia, należy zalogować się na stronie https://admin.nazwa.pl, a następnie przejść do zakładki STATYSTYKI i wybrać opcję Logi serwera (1).

CloudHosting Panel menu logi serwera

Pierwsza od góry sekcja Dziennik dostępu dla serwera WWW (Access Log) zawiera potrzebne informacje. Po kliknięciu w odnośnik Ostatnie zapisy w Access Log (1) wyświetlona zostanie lista zawierająca bieżące wpisy. Poniżej znajduje się również lista logów ułożona wg. dat. Chcąc pobrać logi z danego dnia, należy kliknąć w wybraną datę (2) i zapisać plik na dysku.

CloudHosting Panel statystyki logi access log

Logi zarchiwizowane są jako plik .gz, który należy wypakować przy pomocy dowolnego programu obsługującego archiwa GZIP, np. 7-Zip.

Po rozpakowaniu archiwum, dziennik logów można otworzyć przy pomocy aplikacji obsługującej pliki tekstowe, np. Notatnik w systemie Windows. Jeśli danego dnia odnotowano duży ruch na serwerze, plik będzie zawierał analogicznie dużą ilość wpisów. Większość z nich będzie informowała o wyświetlaniu strony w różnych przeglądarkach, lecz pomiędzy nimi znajdą się również wpisy, mówiące o działaniu botów. Należy przejrzeć uważnie cały plik i odnaleźć potrzebne informacje.

Przykładowy zapis, o działaniu niepożądanego bota, będzie wyglądał następująco:

124.168.222.13 - - [01/Jan/2021:08:49:38 +0200] "GET / HTTP/1.1" 301 233 "-" "Sogou web spider/4.0 (+http://www.sogou.com/docs/help/webmasters.htm#07)" sea1

W tym wypadku mamy do czynienia z botem o nazwie Sogou web spider, a więc tę nazwę user agenta należy wpisać w regule BrowserMatchNoCase, aby został on zablokowany. Reguła dla tego user agenta będzie następująca:

BrowserMatchNoCase "Sogou web spider" bots

 

Zablokowanie niepożądanego adresu IP

Niezależnie od poprzedniej reguły BrowserMatchNoCase, blokującej boty po nazwie user agenta, w pliku .htaccess możemy również zablokować dostęp danemu adresowi IP. W tym celu należy dodać następujący fragment:

#Deny malicious bots/visitors by IP addresses.
deny from adres_ip

W miejsce adres_ip należy wstawić właściwą jego wartość. Przeglądając logi, adres IP odszukać możemy na początku nowego wiersza.

124.168.222.13 - - [01/Jan/2021:08:49:38 +0200] "GET / HTTP/1.1" 301 233 "-" "Sogou web spider/4.0 (+http://www.sogou.com/docs/help/webmasters.htm#07)" sea1

W podanym przykładzie, bot łączył się z adresu IP 124.168.222.13, a więc w pliku .htaccess należy umieścić wpis:

#Deny malicious bots/visitors by IP addresses.
deny from 124.168.222.13
Table of Contents