Imenik članaka
Nedavno sam provjerio pozadinsku podršku web stranice i prosječni dnevni posjeti su samo nekoliko tisuća.
Kad sam otvorio Google Analytics, bio sam potpuno zapanjen.
Jednog dana, broj pregleda moje stranice odjednom je skočio na preko 20 000, i bio sam oduševljen, misleći da sam napokon postao slavan. Ali nakon detaljnijeg pregleda distribucije preglednika, otkrio sam da 90% prometa dolazi s nečega što se zove "HeadlessChrome".
Pitao sam ChatGTP koji je ovo preglednik? Je li to nova verzija Chromea?
Umjetna inteligencija je odgovorila da ovo nije preglednik.
Ovo je robot.

Što je točno HeadlessChrome?
HeadlessChrome, kao što i samo ime govori, Chromeov je način rada bez glave. Chrome je preglednik koji koristite svaki dan. Način rada bez glave onemogućuje grafičko sučelje preglednika, omogućujući mu da radi u pozadini koristeći samo naredbenu liniju.
Nema adresne trake, nema trake s oznakama, ništa što možete vidjeti. To je samo dio koda koji poziva mehanizam preglednika, učitava vašu web stranicu i zatim skida sadržaj.
Pravi korisnici nikada ne bi koristili nešto ovakvo za pregledavanje weba. Vi i ja otvaramo Chrome za čitanje vijesti, gledanje videa i kupovinu na Taobau . HeadlessChrome otvara vašu web stranicu kako bi prikupio vaše podatke i otišao.
Dakle, kada vidite da HeadlessChrome čini 80% ili čak 90% prometa u vašem statističkom backendu, možete zaključiti da je taj promet 100% bot promet.
Odakle dolazi sav ovaj bot promet?
Iskreno, izvori su vrlo raznoliki.
Najčešći primjer je web scraping. Neke tvrtke ili pojedinci koriste automatizacijske okvire poput Puppeteera, Playwrighta ili Seleniuma za pokretanje preglednika bez grafičkog prikaza i skupno struganje sadržaja web stranica. Neki stružu cijene proizvoda, neki stružu vijesti, a neki podatke o konkurentima.
A tu je i umjetna inteligencija. Razni alati umjetne inteligencije, tražilice umjetne inteligencije i sustavi za pretraživanje podataka parsiraju web stranice u pozadini. Kada objavite članak, deseci agenata umjetne inteligencije mogu istovremeno čitati vaš sadržaj.
Druga, suptilnija metoda su vaši vlastiti zakazani zadaci. Na primjer, možete implementirati skriptu za SEO praćenje koja provjerava promjene rangiranja određene stranice svaki sat, koristeći HeadlessChrome. Ili možete postaviti automatsku uslugu snimanja zaslona koja periodički snima slike stranice, također koristeći ovaj alat.
Najneugodnija vrsta je posljednja: zlonamjerno skeniranje. Automatizirane skripte se pokreću kako bi skenirale vašu web stranicu u potrazi za ranjivostima, testirale vaše sučelje za prijavu na pozadinski sustav, pa čak i skupno slale neželjene komentare.
Kako statistički backend identificira HeadlessChrome?
Zapravo je prilično jednostavno. Svaki preglednik uključuje polje User-Agent u zaglavlje zahtjeva prilikom pristupa web stranici, govoreći poslužitelju "tko sam ja". Zadani User-Agent HeadlessChromea uključuje niz znakova "HeadlessChrome". Vaš analitički sustav će to znati nakon što analizira ovo polje.
Međutim, ako programer web crawlera napravi malu izmjenu koda, mijenjajući korisničkog agenta u normalni Chrome ili Safari identifikator, to uopće nećete moći vidjeti iz statističkog pozadinskog sustava. To je prava glavobolja.
用CloudFlare WAF precizno blokira Headless Chrome.
U redu, identificirali smo problem. Kako ćemo ga riješiti?
Najizravnije i najučinkovitije rješenje je presretanje prometa na CDN ili WAF sloju. Nemojte čekati da promet stigne do vašeg poslužitelja prije nego što ga obradite; blokirajte ga na kućnom pragu.
Ako koristite Cloudflare, operacija je zapravo vrlo jednostavna.
Prijavite se u svoju Cloudflare konzolu, odaberite ciljnu domenu, pronađite Sigurnost, zatim kliknite WAF, a zatim idite na Prilagođena pravila i stvorite novo pravilo.
Naziv pravila može biti bilo što, na primjer, "Challenge Headless Chrome"i slično,

Samo zapamti.
Odabir poljaUser AgentOdabir operateracontains, unesite vrijednostHeadlessChrome.
U ovom trenutku vidjet ćete izraz za pregled, koji jehttp.user_agent contains "HeadlessChrome"
Zatim odaberite u operacijiManaged ChallengeiliJS Challenge.
- Predlažem da odaberete
Managed ChallengeJer je njegova metoda provjere inteligentnija i ima manji utjecaj na stvarne korisnike.
Na kraju kliknite Deploy (Implementiraj) i ovo će pravilo stupiti na snagu globalno.
Cloudflare ima stotine čvorova diljem svijeta, konfiguriranih s drugom razinom sinkronizacije. U osnovi, promet preglednika bez grafičkog prikaza blokira se čim kliknete gumb.
Slijepe točke u zaštiti i naprednoj prevenciji
Međutim, postoji jedno "ali".
Samo usklađivanje korisničkog agenta može riješiti većinu konfiguracija web crawlera s zadanim postavkama. Međutim, to nije dovoljno protiv vještih crawlera.
Počevši od Chromea 110, Google je uveo novi način rada bez prikaza zaslona, koristeći...--headless=newPokretanje parametra. U ovom načinu rada, korisnički agent HeadlessChromea je potpuno isti kao i kod običnog Chromea i uopće ne možete vidjeti razliku.
Postoje i oni koji aktivno lažiraju. Razvojni programeri web crawlera izravno zamjenjuju User-Agent normalnim identifikatorom Chromea ili mobilnog preglednika u kodu, što onemogućuje podudaranje čak i s najpreciznijim pravilima.
Za ovu situaciju, Cloudflare također nudi dvije naprednije značajke koje se mogu omogućiti.
Prva se zove Provjera integriteta preglednika.
Da biste omogućili ovu značajku, idite na Sigurnost → Postavke → Provjera integriteta preglednika i uključite je.

Identificira abnormalni promet putem TLS otisaka prstiju. Bez obzira koliko dobro prikrijete korisničkog agenta, TLS otisak prsta ne može se krivotvoriti.
Drugi se zove Bot Fight Mode ili način borbe robota.
Put je Sigurnost → Automatski programi → Način borbe s botovima, koji bi također trebao biti omogućen.

Ova značajka kombinira karakteristike ponašanja kako bi se utvrdilo pripada li promet botovima, kao što su učestalost zahtjeva, putanja kretanja miša, vrijeme zadržavanja na stranici itd.
Besplatna verzija će automatski primijeniti upravljane izazove na sumnjive botove, dok plaćena verzija omogućuje detaljniju konfiguraciju pravila.
Od neželjene pošte do web crawlera, bitka između napadača i branitelja nikada nije prestala.
Kad smo već kod toga, odjednom mi je nešto palo na pamet.
Zapravo, ova vrsta ofenzivnog i obrambenog sukoba odvijala se kroz cijelu povijest interneta. Isto je bilo i kada je neželjena pošta bila raširena u ranim danima; blokirali ste jednu značajku, a pošiljatelj ju je promijenio. Koristili ste filtriranje ključnih riječi, a pošiljatelj je razvrstao osjetljive riječi. Koristili ste ograničenja učestalosti, a pošiljatelj je smanjio učestalost slanja.
Danas je to postala bitka između web stranica i web crawlera. Koristite filtriranje korisničkog agenta, a druga strana oponaša korisničkog agenta. Koristite TLS otiske prstiju, a druga strana počinje istraživati kako simulirati TLS otiske prstiju.
Tehnologija se možda mijenja, ali temeljna logika teorije igara se nikada nije promijenila.
Međutim, za većinu vlasnika web stranica dovoljan je prethodni korak.
80% prometa u Chromeu bez headlessa dolazi od crawlera s zadanim konfiguracijama koji su previše lijeni da bi se prikrili, što se može riješiti jednim WAF pravilom. Što se tiče onih sa sofisticiranim prikrivanjem, osim ako nemate posebno osjetljive podatke kojima je potrebna zaštita, nema potrebe za pretjeranom brigom.
Nakon što omogućite sve potrebne značajke, u osnovi ste spremni.
Na kraju, želio bih dodati još nešto.
Mnogi ljudi vjeruju da što je više prometa na web stranici, to bolje. Međutim, ako ne možete razlikovati stvarni promet od botova, te rastuće brojke samo su metričke vrijednosti. Mogu čak i zavarati vašu prosudbu, navodeći vas da pomislite da je određeni sadržaj posebno popularan, a zapravo se radi o web crawleru koji masovno učitava vašu stranicu.
Razumijevanje prave prirode prometa daleko je važnije od praćenja prometnih brojki.
Ako imate prijatelje koji vode web stranice ili se bave SEO optimizacijom, slobodno im proslijedite ovaj članak. Mnogi ljudi možda ne shvaćaju da njihove web stranice napada veliki broj botova, niti znaju da je rješavanje ovog problema zapravo prilično jednostavno.
Budući da ste pročitali do sada, ako vam je bilo korisno, lajkajte i podijelite. Ako želite prvi primati novosti, možete me i pratiti!
Hvala vam što ste pročitali moj članak. Vidimo se sljedeći put.
Nadam se da će vam članak "HeadlessChromeova abnormalna eksplozija prometa? Vodič u 3 koraka za temeljito blokiranje pomoću Cloudflarea (s WAF pravilima)" podijeljen na blogu Chen Weilianga ( https://www.chenweiliang.com/ ) biti koristan.
Slobodno podijelite poveznicu na ovaj članak: https://www.chenweiliang.com/cwl-34500.html
