Jump to content

Blokada wszystkich botów oprócz Google w htaccess


Recommended Posts

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

Link to post
Share on other sites

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ę

Link to post
Share on other sites

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. :)

spacer.png

Synoglota - synonimizator języka polskiego i angielskiego: ZOBACZ - lato się skończyło, a promocja trwa! :)

Link to post
Share on other sites

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ę

Link to post
Share on other sites

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

Łukasz Borchmann

Google+ / LinkedIn / GoldenLine

Link to post
Share on other sites

@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

spacer.png

Synoglota - synonimizator języka polskiego i angielskiego: ZOBACZ - lato się skończyło, a promocja trwa! :)

Link to post
Share on other sites
  • 3 years later...

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; http://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.

Edited by Rychu
Link to post
Share on other sites
  • 3 weeks later...
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

programista, webmaster, strony internetowe, Warszawa

opublikuję za darmo merytoryczny artykuł z linkiem (linkami) na stronie pinos.pl, kategorie: webmasterka, seo, oprogramowanie, php, js html, css, frameworks, ludzie związani z internetem etc.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use Privacy Policy