Hur till identifiera dåliga robotar och blockera dem
Det finns bra bots och det finns dåliga robotar. Bra bots (robotar som genomsöker en webbplats) genomsöka och indexera din webbplats och få in trafik. Dåliga robotar förbrukar bandbredd och sakta ner din server, stjäl ditt innehåll och titta säkerhetsproblem äventyra din server.
Jag har kämpat i under de senaste 15 åren som sysadmin. Denna "hur-till" är baserat på min personliga erfarenhet. Dåliga robotar finns i alla storlekar och använder olika User-Agent strängar för att identifiera själva. Det finns många bots ute - som kan genomsöka din webbplats med olika nivåer av iver. Många är dock ofarliga. Andra än sökmotorer, vissa robotar drivs av andra legitima myndigheter att avgöra det bästa matchande kampanj för en sidas innehåll för en potentiell annonsör eller leta efter länka information eller ta en ögonblicksbild för arkivering ändamål.
Du kan hitta en lista över vanliga bots här:
Såvitt vi kunde säga - lyda de direktiven i Robots.txt i en viss webbplats. Listan innehåller bots med identifierbar information i deras användaragent fältet. När du bläddrar genom listan, hittar du också att många stora sökmotorerna byta User-Agent strängar enligt deras behov. De flesta anständiga robotar kommer att ge deras kontaktlänk i deras Förbrukaren-Agent snöre att hjälpa webmaster att kommunicera deras preferens eller erbjuda sätt att blockera dem från textfil - Robots.txt
Du kan sakta ner andelen kryper eller neka åtkomst till vissa kataloger från denna textfil.
Till exempel kan du neka åtkomst till alla sidor i ditt rot för detta 'Zum' bot från din robots.txt-fil som här:
User-agent: ZumBot
Tillåt inte: /
Alla vanliga robotar kommer att läsa denna fil och lyda de direktiv som finns där. Men dåliga robotar bry sig om inte att läsa din robotar fil eller läsa dem för att veta vilka är de förbjudna katalogerna att krypa. Så här ' hur till identifiera dåliga robotar använder ett enkelt knep att upptäcka sin avsikt och skapa en loggfil för ytterligare åtgärder.
Steg 1: skapa en fil som kan skriva en logg i din server. Jag har med tanke på en Perl script här bots.pl. Kontrollera att filen sparas i cgi-bin katalogen (förutsatt att din server kan köra Perl-skript). Ställ in behörigheten att utföra för textfilen. Brand upp din webbläsare och peka på denna sida. Du kan läsa din webbläsares Förbrukaren Agent snöre, din IP-adress, referrer sidan (det kommer att bli tomt nu) och servertid där serverades denna begäran. Förresten, visas en tom sida.
Steg 2: den ovan sidan bots.pl bör kopplas från din indexsida - dold från de mänskliga besökarna.
Skapa en länk som så:
< en href = "din domain/cgi-bin/bots.pl >< /a >
Nu ställt du. Loggfilen innehåller uppgifter om dåliga robotar. Men vänta. För att spara bandbredd cachelagras de flesta vanliga normala bots robots.txt. Så finns det en möjlighet att de kan ha cachelagrad din robots.txt tidigare och kanske inte medveten om det nya direktivet. I så fall skulle de krypa blockerade sidan. Så ignorera dem från listan.
Blockerar dåliga robotar
Kolla denna dåliga-robotar fil senare för ytterligare åtgärder. Det finns många sätt att neka åtkomst till dessa oönskade robotar.
Alternativ 1:
Du kan kontrollera IP-adressen mot en vit lista (du lägga till din egen IP-adress as well as det stora sökmotorerna i vita listan) och sista IP-adresserna kan blockeras i brandväggen.
Eller tilldela strängen User-Agent till en neka lista vilket kan resultera i 403-status (förbjudna). Den använder mindre resurser.
En av våra webbplatser använder till exempel ett CGI-skript i vårt CMS. Den följande kodsträng skickas en 403-Forbidden status till User-Agents wget och Zum:
om ($ENV {"HTTP_USER_AGENT"} = ~ / wget|zum/jag) {
skriva ut "status: 403 Forbidden\n"; skriva ut "Content-type: text / html \n\n"; utresa. }
Alternativ 2:
Du kan använda .htaccess för att blockera den dåliga robotar förutsatt att du använder Apache HTTP-server. Om du har några dåliga robotar som använder en särskild Förbrukaren-Agent snöre regelbundet, är det lätt att blockera dem baserat på strängen.
SetEnvIfNoCase User-Agent "^ Wget" bad_user
SetEnvIfNoCase User-Agent "^ gåtan" bad_user
Förneka från env = bad_user
Den ovanstående Instructable är baserad på denna blogg.
Tack för att läsa detta Instructable. Jag kommer gärna att besvara alla frågor relaterade till detta Instructable i kommentarerna.