Skocz do zawartości

Blokada wszystkich botów oprócz Google w htaccess


TheMatthew173

Rekomendowane odpowiedzi

Regułka dla htaccess:

SetEnvIfNoCase User-Agent .*Twiceler.* bad_bot

SetEnvIfNoCase User-Agent .*VoilaBot BETA 1.2.* bad_bot

SetEnvIfNoCase User-Agent .*libwww-perl/5.805.* bad_bot

SetEnvIfNoCase User-Agent .*Java/1.5.0_11.* bad_bot

SetEnvIfNoCase User-Agent .*Sogou web spider/3.0.* bad_bot

SetEnvIfNoCase User-Agent .*psbot.* bad_bot

SetEnvIfNoCase User-Agent .*Exabot.* bad_bot

SetEnvIfNoCase User-Agent .*Charlotte/1.0b.* bad_bot

SetEnvIfNoCase User-Agent .*boitho.com-dc.* bad_bot

SetEnvIfNoCase User-Agent .*ajSitemap.* bad_bot

SetEnvIfNoCase User-Agent .*bot/1.0.* bad_bot

SetEnvIfNoCase User-Agent .*panscient.com.* bad_bot

SetEnvIfNoCase User-Agent .*Java/1.6.0_11.* bad_bot

SetEnvIfNoCase User-Agent .*WebDataCentreBot/1.0.* bad_bot

SetEnvIfNoCase User-Agent .*Java.* bad_bot

SetEnvIfNoCase User-Agent .*SapphireWebCrawler.* bad_bot

SetEnvIfNoCase User-Agent .*Yandex.* bad_bot

SetEnvIfNoCase User-Agent .*Baiduspider.* bad_bot

SetEnvIfNoCase User-Agent .*Rankivabot.* bad_bot

SetEnvIfNoCase User-Agent .*DBLBot/1.0.* bad_bot

SetEnvIfNoCase user-Agent .*eCatch.* bad_bot

SetEnvIfNoCase user-Agent .*EirGrabber.* bad_bot

SetEnvIfNoCase user-Agent .*EmailSiphon.* bad_bot

SetEnvIfNoCase user-Agent .*ExtractorPro.* bad_bot

SetEnvIfNoCase user-Agent .*FlashGet.* bad_bot

SetEnvIfNoCase user-Agent .*GetRight.* bad_bot

SetEnvIfNoCase user-Agent .*Widow.* bad_bot

SetEnvIfNoCase user-Agent .*Offline.Explorer.* bad_bot

SetEnvIfNoCase user-Agent .*[Ww]eb[bb]andit.* bad_bot

SetEnvIfNoCase user-Agent .*Zeus.* bad_bot

SetEnvIfNoCase User-Agent .*DotBot.* bad_bot

SetEnvIfNoCase User-Agent .*MJ12bot.* bad_bot

SetEnvIfNoCase User-Agent .*AhrefsBot.* bad_bot

SetEnvIfNoCase User-Agent .*sitebot.* bad_bot

SetEnvIfNoCase User-Agent .*LexxeBot.* bad_bot

SetEnvIfNoCase User-Agent .*Ezooms.* bad_bot

SetEnvIfNoCase User-Agent .*ichiro.* bad_bot

SetEnvIfNoCase User-Agent .*AppEngine-Google.* bad_bot

SetEnvIfNoCase User-Agent .*rogerbot.* bad_bot

SetEnvIfNoCase User-Agent .*discobot/1.1.* bad_bot

SetEnvIfNoCase User-Agent .*DCPbot/1.2* bad_bot

SetEnvIfNoCase User-Agent .*AcoonBot/4.11.1* bad_bot

SetEnvIfNoCase User-Agent .*Mail.RU/2.0* bad_bot

SetEnvIfNoCase User-Agent .*trendictionbot0.5.0* bad_bot

SetEnvIfNoCase User-Agent .*R6_CommentReader* bad_bot

order allow,deny

deny from env=bad_bot

allow from all

Odnośnik do komentarza
Udostępnij na innych stronach

To jest regułka na konkretne boty, a ja potrzebuje regułki która najpierwo blokowałaby dostęp do strony dla każdego bota i jednocześnie dawała dostęp botowi Google. W robots.txt wygląda to tak:

User-agent: *

Disallow: /

User-agent: Googlebot

Allow: /

Kocham Polskę

Odnośnik do komentarza
Udostępnij na innych stronach

Coś w deseń tego, co pisze kolega powyżej (ew. rozszerzyć o crawler, spider i pokrewne).

Musisz sobie jednak zdawać sprawę z tego, że nie osiągniesz dokładnie oczekiwanego przez siebie efektu - prędzej czy później pojawi się bot, który w User-agent będzie miał coś niepasującego do wzorca.

Nie mówię już nawet o tych, które udają przeglądarkę.

Do tego np. domyślne User-agenty bibliotek dla różnych języków programowania...

No i jest ryzyko, że któryś zwykły użytkownik w końcu złapie się na jakąś regułę napisaną "na wyrost".

Ja bym jednak blokował boty jawnie i raz na jakiś czas dodawał nowe - to daje szansę na uniknięcie "niespodzianek". Jeśli jakiś bot generuje duży ruch to łatwo go zauważysz i wyblokujesz, a jeśli zagląda raz na miesiąc na jedną podstronę to i tak impakt jest praktycznie żaden.

Chyba, że chcesz osiągnąć coś innego, niż oszczędzenie serwera przed zajechaniem - w takim wypadku napisz, co Tobą kieruje i pomyślimy. :)

Odnośnik do komentarza
Udostępnij na innych stronach

A jest możliwość aby zrobić coś takiego aby była regułka która blokuje wszystkie boty np:

RewriteCond %{User-Agent} *

RewriteRule .* - [L]

A do tego dodać regułkę, która by dawała dostęp tylko Googlebotowi? Nie znam się na tych regułkach w .htaccess więc pytam tutaj.

łatwo go zauważysz i wyblokujesz

Nie wszyscy mają czas siedzieć i co 5 minut przeglądać logi serwera i blokować poszczególne boty. Zablokowanie wszystkich botów i danie dostępu GoogleBotowi to jedyne wyjście. Da się to zrobić w robots.txt ale niektóre (zwłaszcza te boty które żrą transfer) mają ten plik w głebokim poważaniu.

Kocham Polskę

Odnośnik do komentarza
Udostępnij na innych stronach

Trzeba pamiętać też o odblokowaniu przeglądarek. Analogicznie do przykładu @kriszo, może to wyglądać np. tak:

SetEnvIfNoCase User-Agent .*google.* good_bot
SetEnvIfNoCase User-Agent .*safari.* good_bot
SetEnvIfNoCase User-Agent .*firefox.* good_bot
SetEnvIfNoCase User-Agent .*chrome.* good_bot
SetEnvIfNoCase User-Agent .*msie.* good_bot
SetEnvIfNoCase User-Agent .*opera.* good_bot

order deny,allow
deny from all
allow from env=good_bot

Na emeryturze po SEO zajmuję się R&D.

Odnośnik do komentarza
Udostępnij na innych stronach

@TheMatthew173:

Przeczytaj uważnie to, co napisałem powyżej:

1. Boty zaglądają do robots.txt, a przeglądarki zwykłych użytkowników nie i dlatego możesz tam łatwo wyblokować wszystkie oprócz określonych bez ryzyka, że wytniesz zwykłego usera.

2. Jeśli chodzi o .htaccess sprawa nie jest tak banalna, bo możesz wyblokować zwykłego użytkownika (bo akurat .htaccess dotyczy wszystkich) - stąd nie da się prosto wyblokować botów oprócz Google'a, bo wyblokujesz też ZWYKŁE PRZEGLĄDARKI - zerknij na to, co pisał @Veal

Co do przeglądania loga - nie musisz zaglądać co 5 minut do loga i nie rób tego "ręcznie" (sic!).

Raz na tydzień przeleć pliki logów np. tak:

zcat /var/log/apache2/POCZATEK_NAZWY_PLIKU* | cut -d'"' -f6 | sort | uniq -c | sort -nr | grep -v "Firefox\|Opera\|Chrome\|MSIE"

Czyli jeśli masz logi w plikach:

alamakota.log.2.gz

alamakota.log.3.gz

alamakota.log.4.gz

to puść:

zcat /var/log/apache2/alamakota* | cut -d'"' -f6 | sort | uniq -c | sort -nr | grep -v "Firefox\|Opera\|Chrome\|MSIE"

I masz gotowe User-agenty posorowane według ilości odpytań od najpopularniejszych (ew. dorzuć do "listy dopuszczalnych przeglądarek" coś, co rzuci Ci się w oczy). Dla plików niespakowanych zamiast zcat puść cat.

Jeśli nie masz dostępu do konsoli - ściągnij logi na dysk, postaw sobie jakiegoś linucha i odpal terminal.

Warto się zapoznać z takimi narzędziami - będziesz miał jak znalazł, gdy przesiądziesz się na dedyka/VPSa (chyba, że będziesz miał od takich rzeczy admina ;) ).

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 lata później...

Wykonałem zapytanie

gcat logi/log-20170116* | cut -d'"' -f6 | sort | uniq -c | sort -nr | grep -v "Firefox|Opera|Chrome|MSIE"

i uzyskałem taki wynik:

6824 Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
3531 -
3401 Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
2820 Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
2691 Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.1 .50 (KHTML, like Gecko) CriOS/55.0.2883.79 Mobile/14C92 Safari/602.1
2258 Mozilla/5.0 (compatible; MJ12bot/v1.4.7; https://mj12bot.com/)
1950 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
1703 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; ASU2JS; rv:11.0) like Gecko
1503 Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; LCJB; rv:11.0) like Gecko

Czy można jeszcze ten wynik wzbogacić o adresy IP? I czy z tego już coś wynika?


Mój serwer jest bardzo obciążony przez boty i cały czas szukam sposobu by je zablokować. Blokuje przez htaccess i robots.txt ale myślę że któreś pomijam.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...
6 godzin temu, jimmi napisał:

wykluczyć Azję i Afrykę

 

ostatnio Ukraina, Rumunia, Anglia, Niemcy, Holandia się bardziej udziela niz dalsze lokalizacje :)  i to najczęściej w poszukiwaniu ofc Joomla, WP i skryptów forumowych ew do refspamu (Ukraina) :), żeby w miarę zablokować potrzeba plus minus 50 reguł w .htaccess

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności