Sites med bot-beskyttelse
Bruger dit site bot-beskyttelse som Cloudflare eller Vercel Firewall, kan den forhindre Asktopus i at læse dine sider. Med en hemmelig header kommer Asktopus igennem, uden at du skal slå beskyttelsen fra.
Hvorfor bot-beskyttelse blokerer Asktopus
Bot-beskyttelse kigger på hver forespørgsel og udfordrer alt, der ikke opfører sig som et menneske i en almindelig browser. Asktopus læser dit site automatisk og får derfor udfordringen i stedet for dit indhold: en verifikationsside som Cloudflares "Just a moment..." eller Vercel Security Checkpoint. Der er intet at lære af de sider. Når Asktopus læser dine sider og kun får verifikationssider tilbage, lægger Asktopus dem ikke i vidensbasen. Fanen Vidensbase fortæller dig, at dit sites bot-beskyttelse blokerede Asktopus, og linker til løsningen herunder.
Hvorfor en IP-allowlist ikke er nok
Asktopus henter dit sitemap og din robots.txt fra sin egen server, men selve siderne læses i en cloud-browser på Cloudflares netværk, så sider bygget med JavaScript kommer rigtigt med. De forespørgsler kommer ikke fra én fast IP-adresse, og de adresser, de kommer fra, deles med alle andre, der bruger samme tjeneste. Tillader du dem, slipper langt mere end Asktopus igennem. En hemmelig header er præcis: Kun forespørgsler med din værdi kommer forbi.
Sådan virker headeren
Du vælger et header-navn og en hemmelig værdi. Asktopus sender så headeren med alle forespørgsler til dit site, når det scanner og læser det:
- Hentning af sitemap og robots.txt fra Asktopus' server.
- Læsning af sider i cloud-browseren.
Kun dit domæne — Headeren sendes kun til dit sites domæne og dets underdomæner, fx example.com, www.example.com og blog.example.com. Den sendes aldrig til andre domæner, heller ikke når en side viderestiller til et andet sted.
Intet fra andre domæner — Mens en header er sat, henter cloud-browseren intet fra andre domæner, når den læser dine sider. Statistik, annoncescripts og widgets fra tredjepart blokeres, så din hemmelighed ikke kan slippe ud til dem. Henter dit site selve indholdet fra et andet domæne, kan de sider blive ufuldstændige, mens en header er sat.
Vises aldrig igen — Når du har gemt en værdi, vises den aldrig i fuld længde igen. Dashboardet viser de sidste fire tegn af værdier på 12 tegn eller mere.
Sæt det op i Asktopus
- Åbn dit site i dashboardet, og gå til Indstillinger › Bot-beskyttelse.
- Skriv et header-navn, fx X-Asktopus-Verify.
- Klik på Generér for at lave en tilfældig hemmelighed på 32 tegn, eller indsæt din egen. Kopiér den nu: Du skal bruge den i din firewall-regel, og den vises ikke i fuld længde igen.
- Klik på Tilføj header.
- Tilføj en regel i din firewall, der lukker forespørgsler med denne header og værdi igennem. Vejledningerne til de enkelte platforme herunder viser hvordan.
- Gå til fanen Vidensbase, og klik på Scan for nye sider og derefter Opdater viden. Nye og ændrede headers gælder fra næste scan eller opdatering.
Du kan tilføje op til 5 headers. Navne må være op til 64 tegn lange og bruge de almindelige tegn i header-navne; værdier må være op til 1.024 printbare ASCII-tegn. Vil du ændre en værdi, tilføjer du samme navn igen, så erstatter den den gamle. Fjern sletter en header. Ejere og redaktører kan administrere headers, på alle abonnementer.
Nogle navne kan ikke bruges, fordi browseren eller netværket styrer dem: Host, Content-Length, Content-Type, Content-Encoding, Transfer-Encoding, Connection, Keep-Alive, Upgrade, TE, Trailer, Expect, Cookie, User-Agent, Accept-Encoding og alle navne, der starter med cf-, sec- eller proxy-.
Cloudflare
Super Bot Fight Mode (Pro, Business og Enterprise)
Opret en custom rule, der springer Super Bot Fight Mode over for forespørgsler med din header:
- Åbn dit domæne i Cloudflare-dashboardet, og gå til Security › Security rules.
- Vælg Create rule › Custom rules, og giv reglen et navn, fx Allow Asktopus.
- Under When incoming requests match vælger du Edit expression og skriver udtrykket herunder med dit eget header-navn og din hemmelighed.
- Under Then take action vælger du Skip og derefter All Super Bot Fight Mode rules.
- Vælg Deploy.
any(http.request.headers["x-asktopus-verify"][*] == "din-hemmelighed")Skriv header-navnet med små bogstaver i udtrykket, fordi Cloudflare gemmer header-navne med små bogstaver. Værdien skal passe præcist.
Custom rules køres i rækkefølge, og en regel, der blokerer eller udfordrer, stopper evalueringen. Placér skip-reglen over dine egne regler, der kan blokere Asktopus. Stopper rate limiting-regler eller managed rules også Asktopus, kan du vælge dem i samme Skip-regel.
Bot Fight Mode (Free-abonnement)
Bot Fight Mode kan ikke springes over. Den kører ikke i Cloudflares regelmotor, så Skip-, Bypass- og Allow-regler har ingen effekt på den, og en header hjælper ikke. Blokerer den Asktopus, kan du enten slå Bot Fight Mode fra (Security › Settings, filtreret på Bot traffic) eller opgradere til Pro og bruge Super Bot Fight Mode med skip-reglen ovenfor.
Vercel Firewall
Vercels Bot Protection-regelsæt viser Vercel Security Checkpoint til trafik, der næppe kommer fra en browser. En custom rule med handlingen Bypass lukker forespørgsler med din header igennem. Custom rules køres før managed rulesets som Bot Protection.
- Åbn projektet i dit Vercel-dashboard, og vælg Firewall i sidebaren.
- Vælg ⋯ › Configure, derefter Add New… › Rule, og giv reglen et navn.
- Tilføj en If-betingelse på request-headeren: dit header-navn, der skal matche din hemmelighed præcist.
- Sæt Then til Bypass, og vælg Save Rule.
- Vælg Review Changes og derefter Publish.
Hold reglen øverst blandt dine custom rules, fordi en bypass kun springer reglerne efter den over. Bypass dækker ikke Vercels beskyttelse på systemniveau, som fx DDoS-mitigering.
Andre firewalls
Enhver firewall eller proxy, der kan matche en request-header, kan bruge samme fremgangsmåde: Lav en regel, der matcher dit header-navn og din præcise hemmelighed, og lad den springe bot-tjekket over.
- AWS WAF — tilføj en regel med et string match på din header, sat til Exactly matches string, og handlingen Allow. Allow afslutter evalueringen, så placér reglen før din Bot Control-regelgruppe.
- Din egen server — spring bot-tjekket over i nginx, Apache eller din applikationskode, når headeren har din hemmelige værdi.
Pas på hemmeligheden
Behandl værdien som en adgangskode. Brug en lang, tilfældig værdi (Generér laver en), genbrug den ikke andre steder, og hold den ude af offentlig kode. Headeren får kun Asktopus forbi bot-tjekket, så behold din øvrige beskyttelse, fx rate limits. Vil du skifte hemmeligheden, så lad din firewall-regel acceptere både den gamle og den nye værdi, tilføj den nye værdi i Asktopus under samme header-navn, og fjern derefter den gamle værdi fra reglen.
Tjek, at det virker
Efter opdateringen skal fanen Vidensbase vise dine sider og ingen advarsel om bot-beskyttelse. Din firewalls hændelseslog viser, hvilken regel der håndterede hver forespørgsel: i Cloudflare under Security › Analytics › Events og i Vercel på Firewall-oversigten, hvor du kan gruppere trafikken efter din custom rule. Bliver forespørgsler med headeren stadig udfordret, så tjek, at navn og værdi passer præcist, og at reglen ligger over de regler, der blokerer.