Hur man stoppar bots och skrapor från att äta din bandbredd
En överraskande del av din trafik är robotar, och inte den goda typen. Hur man upptäcker skraporna som äter din bandbredd, berätta för dem bortsett från Google och stänga ut dem vid kanten.
Här är en sak som händer med nästan varje växande webbplats. Du öppnar din analys, ser ett hälsosamt trafiknummer och mår bra. Sedan öppnar du dina råa serverloggar - de analytics visar dig aldrig, 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, det nu vet 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 bots du behöver från de du inte gör
Bots att hålla
- Googlebot, Bingbot – det är därför folk hittar dig
- Övervakare av drifttid och prestanda som du konfigurerat
- Länk förhandsgranskning hämtare för Slack, WhatsApp, sociala plattformar
- Betalning och webhook callbacks från tjänster du använder
Bots att stoppa
- Pris- och innehållsskrapor som kopierar din katalog
- Upphovsrättsförfalskare som spelar upp stulna inloggningar
- Sårbarhetsskannrar som söker efter kända bedrifter
- Spambots hamrar formulär och kommenterar slutpunkter
Det finns en tredje kategori som har vuxit mycket på senare tid och passar inte snyggt i någon kolumn: AI-träningsrobotar. Oavsett om du vill ha dem är ett affärsbeslut snarare än en säkerhet, 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 är, per definition, i den andra kolumnen.
Spottar de dåliga
Den kritiska regeln är att du identifierar bots genom beteende, inte av 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 förfalskning innebär att det är långsammare och dyrare, vilket besegrar skrapningspunkten.
Omänsklig begäran priser och rytm
En person laddar inte 60 produktsidor på 4 sekunder. De laddar inte heller med exakt 250 millisekunders intervall i sex timmar. Människor är oberäkneliga; skript är metronomer.
Endast HTML, ingen av möblerna
En webbläsare som laddar en sida hämtar också CSS, typsnitten, 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-områden, 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 iterera produkt-ID:n sekventiellt, eller begära sökvägar som bara finns i en sårbarhetsskanners ordlista.
Trafik från värdområden som aldrig konverterar
Riktiga kunder surfar från bostads- och mobilnät. En plötslig översvämning från ett datacenter ASN med noll konverteringsfrekvens är en stark signal i sig.
Blockera aldrig enbart på användaragenten, och var försiktig med att blockera hela länder. Båda ser avgörande ut i en instrumentbräda och båda kostar tyst dig riktiga kunder. Land block i synnerhet tenderar att ställas in under en incident och aldrig granskas igen.
Varför kant är rätt plats att göra detta
Det är den delen som förändrar ekonomin. Om du blockerar en skrapa på 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 tillbaka en 403.
Blockera den vid kanten – ut vid PoP närmast bot – och begäran når aldrig ditt ursprung alls. Din applikation vaknar aldrig, din ursprungsbandbredd är orörd och dina loggar förblir läsbara. Under en allvarlig skrapning kör det är 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 den ordning de ska köra:
| Lager | Vad den fångar | Falsk positiv risk |
|---|---|---|
| Nätverksblocklista | 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 |
| Taktbegränsande | Allt begär snabbare än en människa kan | Låg, om gränsen är generös |
| Honeypot vägar | Crawlers som följer länkar människor inte kan se | Nära noll |
| Proof-of-work utmaning | Storskalig automation av alla slag | Låg |
| Land / ASN regler | Blunt, situationsberoende | Hög - använd sparsamt |
Honeypots är underskattade
En honeypot är en webbadress som ingen människa någonsin kommer att besöka - länkad från din sida men dold från visning och förbjuden i robots.txt. En riktig besökare ser det aldrig. En väluppfostrad 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 är nära noll, vilket gör det till en av de få signalerna 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äknings pussel innan de serveras. En riktig webbläsare gör det på ett ögonblick och besökaren märker aldrig något. 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ärd att sluta fungera. Det blockerar inte någon - det gör bara industriell skala skrapning kostar mer än det återvänder, vilket vanligtvis räcker.
Vad ska man göra den här veckan
- Läs dina råa loggar, inte analyser. Skrapare kör inte JavaScript, så de är osynliga i Google Analytics. Sortera förfrågningar efter IP och av användaragent och titta på topp tjugo av varje.
- Sätt en generös gräns på 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 det på de slutpunkter som spelar roll. Logga in, återställ lösenord, sök och kassan förtjänar mycket strängare gränser än din blogg.
- Aktivera verifierad botkontroll så bedragare Googlebots sluta få ett frikort.
- Lägg till en honeypot-väg Se vad som händer i en vecka innan du bestämmer dig för vad du ska göra.
- Besluta om AI crawlers med flit. Oavsett hur du går, skriv det i robots.txt istället för att lämna det till slumpen.
Vanliga frågor
Hur stoppar jag skrapor från att kopiera 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 bots 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 hastighetsgräns som fångar Googlebot under en genomsökning. Håll verifierade sökmotorrobotar undantagna från prisbegränsningar och utmaningar och kontrollera din Search Console-crawlstatistik efter eventuella ändringar för att bekräfta att crawlningen fortsatte normalt.
Stoppar robots.txt skrapor?
Nej. robots.txt är en begäran, inte en mekanism för verkställighet. Välskötta sökrobotar som Googlebot och de flesta AI-utbildningsrobotar hedrar det; skrapor och skadliga robotar 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 serveras. 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. Det identifierar inte bots - det gör automatisering i skala ekonomiskt meningslöst.
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 utan att köra några skript. Det betyder att skrapning av trafik är helt osynligt i analys samtidigt som du fortfarande konsumerar 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örde.
Du kommer aldrig att komma till noll bots, och jaga noll är hur människor hamnar blockera sina egna kunder. Det realistiska målet är att den automatiserade trafiken du betalar för är trafik du valde att tillåta.
Se hur NordicCDN gör detta för din webbplats:
Mads har arbetat inom IT - mestadels värd - sedan han var 16. Han tog tidigt del i ett SaaS-företag och hjälpte till att växa fram till Vismas förvärv, 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.