Hur man stoppar bots och skrapor från att äta din bandbredd
En överraskande del av din trafik är robotar, och inte den goda sorten. Så här upptäcker du skraporna som äter din bandbredd, berättar för dem bortsett från Google och stänger dem ute vid kanten.
Här är något som händer med nästan alla växande webbplatser. Du öppnar dina analyser, ser ett hälsosamt trafiknummer och mår bra. Sedan öppnar du dina råa serverloggar - de som analytics aldrig visar dig, eftersom skrapor inte kör JavaScript och därför aldrig visas i Google Analytics alls - och upptäcker att ett enda IP-intervall har begärt din hela produktkatalogen fyra gånger denna vecka, i alfabetisk ordning, klockan tre på morgonen.
Det är en skrapa. Det bidrog ingenting, kostar dig bandbredd, och om dina priser är på dessa sidor, vet det nu dem.
Instinkten är att blockera allt som inte är en människa. Gör inte det: du skulle ta Googlebot med det, och att förlora din söktrafik är ett mycket dyrare problem än bandbredden du försökte spara. Du vill ha en dörrvakt, inte en vägg.
Sortera de robotar du behöver från dem du inte behöver
Bots att behålla
- Googlebot, Bingbot – det är därför folk hittar dig
- Övervakningar av drifttid och prestanda som du har konfigurerat
- Länkförhandsvisning för Slack, WhatsApp och sociala plattformar
- Betalning och webhook-återkallelser från tjänster du använder
Bots att stoppa
- Pris- och innehållsskrapor som kopierar din katalog
- Återuppspelning av stulna inloggningar med registreringsuppgifter
- Sårbarhetsskannrar som söker efter kända bedrifter
- Spambotar som hamrar formulär och kommenterar slutpunkter
Det finns en tredje kategori som har vuxit mycket på senare tid och inte passar snyggt i någon av kolumnerna: AI-träningsrobotar. Oavsett om du vill ha dem är ett affärsbeslut snarare än ett säkerhetsbeslut, och det är värt att göra medvetet snarare än av misstag. De flesta av dem respekterar robots.txt, och de flesta publicerar de användaragentsträngar de använder, så några rader i robots.txt hanterar de välskötta. De som ignorerar robots.txt finns per definition i den andra kolumnen.
Att upptäcka de dåliga
Den kritiska regeln är att du identifierar robotar utifrån beteende, inte utifrån vad de påstår sig vara. En user-agent sträng är ett textfält som klienten fyller i; en skrapa som säger att det är Chrome på macOS kostar sin författare ungefär fyra sekunders ansträngning.
Beteende är mycket svårare att förfalska, eftersom det innebär att det är långsammare och dyrare, vilket besegrar skrapningspunkten.
Omänsklig begäran priser och rytm
En person läser inte in 60 produktsidor på fyra sekunder. De laddas inte heller med exakt 250 millisekunders intervall under sex timmar. Människor är oberäkneliga; manus är metronomer.
Bara HTML, ingen av möblerna
En webbläsare som laddar en sida hämtar också CSS, teckensnitten och bilderna. En skrapa vill ha HTML och inget annat. En klient som begär tusen sidor och noll stilmallar är inte en webbläsare.
Påstådd identitet som inte verifierar
Googlebot publicerar sina IP-intervall, och en omvänd DNS-sökning på en riktig Googlebot IP löser till googlebot.com och framåt-löser tillbaka. Allt som påstår sig vara Googlebot från en konsument VPS-leverantör ljuger.
Mekaniska URL-mönster
Gå din webbplatskarta uppifrån och ner, eller upprepa produkt-ID:n sekventiellt, eller begära sökvägar som bara finns i en sårbarhetsskanners ordlista.
Trafik från värdserier som aldrig konverteras
Riktiga kunder surfar från bostads- och mobilnätverk. En plötslig översvämning från ett datacenters ASN med en nollkonverteringsgrad är en stark signal i sig.
Blockera aldrig enbart användaragenten och var försiktig med att blockera hela länder. Båda ser avgörande ut i en instrumentpanel och kostar dig tyst riktiga kunder. Särskilt landsblock brukar ställas in under en incident och aldrig ses över igen.
Varför kanten är rätt plats att göra detta på
Det är den delen som förändrar ekonomin. Om du blockerar en skrapa vid ditt ursprung har begäran redan korsat internet, öppnat en TLS-anslutning, väckt din ansökan och förbrukat bandbredd på väg in. Du betalade för allt detta, och sedan returnerade en 403.
Blockera den på kanten – ute på PoP närmast bot – och begäran når aldrig ditt ursprung alls. Din applikation vaknar aldrig, din ursprungliga bandbredd är orörd och dina loggar förblir läsbara. Under en seriös skrapning är det skillnaden mellan en olägenhet och ett avbrott.
De lager som fungerar
Ingen enskild mekanism fångar allt, och det är bra, eftersom de komponerar bra. I ungefär samma ordning som de bör köra:
| Lager | Vad den fångar | Falskt positiv risk |
|---|---|---|
| Blocklista för nätverk | Kända dåliga IP-adresser som redan identifierats i nätverket | Mycket låg |
| Verifierad botkontroll | Bedragare påstår sig vara Googlebot | Mycket låg |
| Begränsning av skattesatsen | Allt som begärs snabbare än en människa kan | Låg, om gränsen är generös |
| Honeypot-banor | Krypskyttar som följer länkar som människor inte kan se | Nära noll |
| Utmaning för bevisarbete | Storskalig automation av alla slag | Låg |
| Land / ASN regler | Blunt, situationsberoende | Hög – använd sparsamt |
Honeypots är underskattade
En honungspotta är en webbadress som ingen människa någonsin kommer att besöka – länkad från din sida men dold och förbjuden i robots.txt. En riktig besökare ser det aldrig. En väluppfostrade crawler läser robots.txt och hoppar över den. Allt som begär det har både ignorerat robots.txt och följt en osynlig länk, vilket är ungefär lika nära bevis på dålig avsikt som du kommer på den öppna webben. Falska positiva signaler är nära noll, vilket gör det till en av få signaler som är säkra att agera på omedelbart och automatiskt.
Bevis på arbete är det artiga alternativet
En proof-of-work-utmaning ber kunden att lösa ett litet beräkningspussel innan det serveras. En riktig webbläsare gör det på ett ögonblick och besökaren märker aldrig att något hänt. Men en skrapa som gör 100 000 förfrågningar måste nu spendera riktig CPU på var och en, och aritmetiken som gjorde operationen värt slutar fungera. Det blockerar inte någon - det gör bara industriell skala skrapning kostnad mer än det återvänder, vilket vanligtvis räcker.
Vad man ska göra denna vecka
- Läs dina råa loggar, inte analyser. Skrapor kör inte JavaScript, så de är osynliga i Google Analytics. Sortera förfrågningar efter IP och användaragent och titta på de tjugo bästa av varje.
- Sätt en generös gräns för allt. Något långt över vad en människa kan göra - poängen är att fånga det uppenbara, inte att polisera dina användare.
- Dra åt ändpunkterna som är viktiga. Inloggning, återställning av lösenord, sökning och utcheckning förtjänar mycket strängare gränser än din blogg.
- Slå påAktivera kontroll av verifierade bottar få ett gratiskort.
- Lägg till en honeypot-banan du bestämmer dig för vad du ska göra åt det.
- Besluta om AI-krypare med flit. Oavsett hur du går, skriv det i robots.txt snarare än att lämna det till slumpen.
Vanliga frågor
Hur förhindrar jag att skrapor kopierar min webbplats?
Blockera dem vid CDN-kanten baserat på beteende snarare än användaragent. Den effektiva kombinationen är hastighetsbegränsande, verifierade botkontroller så att bedragare avvisas, honeypot-sökvägar som bara automatiserade kunder kommer att begära och en proof-of-work-utmaning som gör storskalig skrapning För dyrt för att vara värt det. Blockering vid kanten innebär att begäran aldrig når ditt ursprung eller kostar dig bandbredd.
Hur kan jag se en dålig bot från Googlebot?
Verifiera det istället för att lita på användaragentsträngen, som vem som helst kan ställa in. Google publicerar sina crawler IP-områden, och en äkta Googlebot IP löser via omvänd DNS till en googlebot.com värdnamn som framåt-löser tillbaka till samma IP. Allt som påstår sig vara Googlebot från en värdleverantör eller VPS-sortiment är en bedragare och kan blockeras säkert.
Kommer blockering av robotar att skada min SEO?
Inte om du tillåter verifierade sökrobotar. Risken kommer från trubbiga regler - blockerar ett helt land eller en alltför aggressiv räntegräns som fångar Googlebot under en genomsökning. Håll verifierade sökmotorrobotar undantagna från prisgränser och utmaningar och kontrollera sökstatistiken i Search Console efter eventuella ändringar för att bekräfta att sökningen fortsatte normalt.
Stoppar robots.txt skrapor?
Robots.txt är en begäran, inte en verkställighetsmekanism. Välskötta sökrobotar som Googlebot och de flesta AI-utbildningsrobotar hedrar det; skrapor och skadliga bots ignorerar det helt och hållet, och vissa använder det som en karta över de vägar du hellre inte skulle se. Det är värt att underhålla för de robotar som samarbetar, men det är inte en säkerhetskontroll.
Vad är en proof-of-work utmaning?
En proof-of-work-utmaning kräver att klientens webbläsare löser ett litet beräkningspussel innan sidan visas. En riktig webbläsare slutför det på en bråkdel av en sekund och besökaren ser inget ovanligt, men en bot som gör hundratusentals förfrågningar måste spendera riktig CPU på var och en. Den identifierar inte robotar – den gör automatisering i stor skala ekonomiskt meningslös.
Varför visas inte skrapor i Google Analytics?
Google Analytics förlitar sig på JavaScript-körning i webbläsaren, och de flesta skrapare begär den råa HTML-koden utan att köra några skript. Det betyder att skrapning av trafik är helt osynligt i analyser samtidigt som det förbrukar verklig bandbredd och ursprungskapacitet. För att se det, titta på råa server- eller CDN-loggar, där varje begäran visas oavsett om JavaScript kördes.
Du kommer aldrig att komma till noll bots, och att jaga noll är hur människor slutar blockera sina egna kunder. Det realistiska målet är att den automatiserade trafiken du betalar för är den trafik du väljer att tillåta.
Se hur NordicCDN gör detta för din webbplats:
Mads har arbetat inom IT – mestadels som värd – sedan han var 16. Han tog tidigt del i ett SaaS-företag och hjälpte till att växa fram till förvärvet av Visma, har byggt och drivit datacenternätverk och fungerat som CTO för ett danskt datacenter. Han startade NordicCDN för att göra snabb och säker infrastruktur enkel att använda.