Technikai
How We Built a System That Scans 100,000 Websites for Cookie Consent Violations
GDPR Privacy Monitor Engineering · 2026-04-13 · 7 min olvasás
Az automatizalt hozzajarulasi megfelelessi ellenorzes egyszerenek hangzik, amig meg nem probaljuk megepiteni. A naiv megkozelites -- oldal lekerese, cookie-k ellenorzese, banner keresese -- a lenyeg nagy reszet kihagyja. A hozzajarulasi jogsertesek viselkedesi jellegeetk, nem strukturalisak. A szkriptek vegrehajtasanak idoziteseben, a halozati keresek sorrendjeben, a felhasznaloi feluleti elemek felhasznaloi interakciora adott valaszaiban es az allapot oldalbetoletesek kozotti megmaradasaban nyilvanulnak meg. Mindezeket nem lehet ertekelni valos bongeszo futtatasa, az oldallal valo emberi interakcio szimulalasa es a halozati szinten valoban torteno esemenyek rogzitese nelkul.
Ez a bejegyzes leirja, hogyan epitettuk meg a GDPR Monitor mogotti vizsgalati motort, melyek azok a mernoki kihivasok, amelyek az idonk nagy reszet felfaltak, milyen architekturalis donteseket hoztunk es miert, es melyek azok a korlátok, amelyekkel kapcsolatban osszintek vagyunk. Ha webes megfelelessel, bongeszO automatizalassal vagy nagy lepteku webes meressel foglalkozik, remeljuk talal itt hasznos informaciokat.
A pipeline attekintese
Minden vizsgalat hat fazison megy keresztul. A pipeline megerese szukseges hatterismeretket ad az azt kőveto konkret kihivasokhoz.
1. fazis: Bongeszo inditas es izolacio. Egy tiszta Chromium peldany indul nulla allapottal -- nincsenek cookie-k, localStorage, gyorsitar, service workerek. Ez a tiszta szobai garancia teszi ertelmessé a hozzajarulas elotti merest. Standard nezetablakot, valos felhasznaloi ugynokkot es a celorszagnak megfelelo Accept-Language fejleceket, valamint standard bongeszo-flageket konfigurálunk. Minden vizsgalat sajat bongeszofolyamatot kap; nincs allapotszivargas a vizsgalatok kozott. 2. fazis: Navigacio es hozzajarulas elotti pillanatkep. A szkenner a cel URL-re navigal, megvarja az oldal stabil allapotba keruleset (halozati tetelenseg, DOM lecsillapodas), es rogzit mindent, ami tortent: beallitott cookie-k, halozati keresek (teljes URL-lel, idozitessel es valasz-metaadatokkal), harmadik fel domenek megkeresese es teljes oldalas kepernykep. Ez a pillanatkep valaszol az alapveto kerdesre: mit tett ez a weboldal, mielott a felhasznalonak barmilyen lehetosege lett volna hozzajarulni? 3. fazis: CMP-eszbeles es banner-azonositas. A szkenner megkiseerli azonositani a hozzajarulás-kezelo platformot, es megtalaalni a hozzajarulasi bannert, az elfogado gombot es az elutasito gombot. Ez az alabb reszletezett reteges eszlelesi rendszert hasznalja. 4. fazis: Hozzajarulasi interakcio. A szkenner interakciol a bannerrel -- elfogadasra kattint a standard folyamathoz, elutasitasra az elutasitasi teszthez. Megvarja az oldal lecsillapodaasat az interakcio utan, figyelembe veve az animaciokat, a szkriptek ujrainertekelieset es a keseeltetett tag-tuzelest. 5. fazis: Hozzajarulas utani pillanatkep es differencial elemzes. Egy masodik teljes pillanatkep rogziti az allapotot a hozzajarulasi interakcio utan. A hozzajarulas elotti es utani pillanatkep osszehasonlitasa feltarja, mi valtozott: uj cookie-k, uj kovetesi keresek, hozzajarulasi allapot a CMP API-kban. 6. fazis: Elemzes, besorolas es jelentes generalas. A nyers adatok elemzesi modulokba kerulnek: cookie-besorolas az adatbazisunk alapjan, nyomkoveto egyeztes ismert mintak alapjan, cookie-elettartam ertekeles, a banner akadalymentessegi auditja, Google Consent Mode validacio, ujjlenyomat-jel eszbeles es kockazati pontszamitas. A kimenet egy strukturalt jelentes megallpitasokkal, bizonyitek-elorformsokkal es osszetett kockazati pontszammal.Minden fazis idobelyeggel ellatott bizonysitekot allít elo, amelyet tartósan tarolunk. Barmely megallapitas visszakovetheto konkret halozati keresekhez, cookie-bejegyzesekhez vagy kepernyokepekhez.
1. kihivas: CMP-eszbeles -- 45 platform, vegtelen variacik
A hozzajarulas-kezeles nincs szabvanyositva. Nincs univerzalis HTML attribuum, nincs kotelezo JavaScript API, nincs konzisztens DOM-struktura, amely megmondja, "ez egy hozzajarulasi banner". 45 kulon CMP van az eszlelesi konyvtarunkban, mindegyik sajat DOM-strukturavel, szkript-alairasokkal, JavaScript globalis valtozokkal es interakcios mintakkal. Ezeken tul a 97 304 oldalas tanulmanyunkban eszlelt bannerek 34,7%-a altalanos vagy nem azonositott volt -- egyedi megvalositasok, regionalis szolgaltatok vagy minimal megoldasok, amelyek nem egyeznek egyetlen ismert CMP-alairassal sem.
Eszlelesunk bizalomalpu, reteges megkozeliteset hasznal:
1. reteg: Szkript-alairas eszleles
A szkenner ismert CMP szkriptek jelenletet ellenorzi URL-minta es JavaScript globalis valtozok alapjan. A Cookiebot peldaul a `consent.cookiebot.com`-rol toltodik es kozteszi a `window.Cookiebot`-ot. A OneTrust a `cdn.cookielaw.org`-rol toltodik es kozteszi a `window.OneTrust`-ot. Minden CMP-nek jellegzetes betoltesi mintai vannak, amelyek a DOM vizsgalata elott eszlelhetok.
Ez a reteg gyors es magas megbizhatosagu, amikor egyezes van. De van egy kritikus korlatja: megmondja, melyik CMP van jelen az oldalon, de nem feltetlenul azt, melyik CMP felelos a hozzajarulasi bannerert. Egy oldal betoltheti a PiwikPRO-t analitikai celra (amely tartalmaz CMP-komponenst), mikozben a tarteaucitron-t hasznalja a tenyleges hozzajarulas-kezelesre. Mindket szkript eszlelese konnyu; annak megallapitasa, melyik vezerli a bannert, nehezebb.
2. reteg: Ellenorzott szelektor-egyeztes
Minden ismert CMP-hez gondozott CSS-szelektorokat tartunk fenn, amelyek megbizhatoan azonositjak a banner-tartalyt, az elfogado gombot es az elutasito gombot. Ezeket a szelektorokat tobb verziora es konfiguraciora validaltuk az egyes CMP-k eseten. Amikor egy CMP-t az 1. retegben eszleltunk es az ellenorzott szelekorai egyeznek a DOM elemivel, nagy a bizalmunk mind a CMP azonositasban, mind a banner interakcios celpontokban.
3. reteg: Kompatibilis szelektor-egyeztes
Szelektorok szlesebb halmazas, amelyek egy CMP sok verziojaban mukodnek, de kevesbe precizek. Ezek kezelik azokat az eseteket, amikor egy CMP-t testreszabtak, temazt adtak neki, vagy olyan verziot futtat, amelyet az ellenorzott szelektoraink nem fednek le. Pontossagot cserelnek lefedettségre.
4. reteg: Altalanos heurisztikak
A 34,7%-nyi bannerhez, amelyek nem kapcsolodnak ismert CMP-hez, heurisztikus eszblesre eesünk vissza. A szkenner keresi:
- Allo pozicioju vagy ragados pozicioju elemeket a nezetablak alja vagy teteje kozeleben
- Hozzajarulashoz kapcsolodo kulcsszavakat tartalmazo elemeket tobb nyelven ("cookies", "consent", "privacy", "akzeptieren", "accepter", "aceptar" stb.)
- Gyakori hozzajarulasi cimkekkel ellatott gombokat ("Accept All", "Reject All", "Manage Preferences" es ezek megfeleloi)
- Hozzajarulasi dialogusokra jellemzo strukturalis mintakat: atfedo hatterek, modalis tarolyk, elvetesi gombok
Ez a reteg sok egyedi megvalositast elkap, de eredendoen kevesbe megbizhato. Egy allo pozicioju promoocios banner vagy hirlevel-feliratkozas strukturalisan hasonloan nezhet ki, mint egy hozzajarulasi dialogus.
5. reteg: CMP API vizsgalat
Nehany CMP JavaScript API-kat tesz kozze -- leginkabb az IAB Transparency and Consent Framework (TCF) API-t a `__tcfapi`-n keresztul. Vizsgaljuk ezeket az API-kat mind a CMP eszleles ellenorzesere, mind a programozott hozzajarulasi allapot kiolvasasara, amelyet kesobb osszehasonlitunk a megfigyelt bongeszo-viselkedessel.
A bizalmi modell
Ahelyett, hogy az eszblelest binarisan kezelnénk (talalt/nem talalt), bizalmi pontszamokat rendelunk ahhoz, hogy mely retegek egyeztek es milyen erosen. Egy oldal, amelyen CMP szkriptet eszblelunk, ellenorzott szelektorok egyeznek es TCF API-t talalunk, magas bizalmat kap. Egy oldal, ahol csak altalanos heurisztikak talaltak egyezest, alacsonyabb bizalmat kap. Ez a bizalmi pontszam belefoly a kockazati besorolasba -- alacsonyabb eszelesi bizalom eseten a megallapitasokat nagyobb valoszinuseggel soroljuk be nem meggyozonek, nem pedig veglegesnek.
A bizalmi modell az oka annak, hogy a CMP-felreismerés, bar elofordul, nem torzitja szisztematikusan az eredmenyeinket. Amikor az eszbeles kekertelmu, azt mondjuk, nem eroltétunk besorolast.
2. kihivas: Az elutasitasi folyamat -- Miert meglepoen nehez a "Kattints es ellenorizd"
Egy elutasito gomb tesztelese egyszerenek tunik: talald meg, kattints ra, ellenorizd, hogy eltuntek-e a cookie-k. A gyakorlatban minden lepes idozitesi problemakkal, aszinkron viselkedessel es platform-specifikus furcsasagokkal teli.
Az elutasito gomb megtalalasa. Nem minden elutasito gomb cimkeje "Elutasitas". Allhatnak rajtuk "Osszes elutasitasa", "Megtagadas", "Csak szukseges cookie-k", "Beallitasok kezelese" (ami egy masodik retegre vezet, ahol az elutasitas lehetseeges), vagy ezek megfeleloi barmely tucatnyi nyelven. Nehany CMP mas vizualis helyre, mas merettel vagy mas szinnel helyezi az elutasitasi lehetoseget az elfogadashoz kepest. Nehany elrejti egy "Tovabbi lehetosegek" vagy "Testreszabas" link moge. Szkennerunk tobbnyelevu elutasitasi mintakat tart fenn, es eszleli a masodik reteegu elutasitasi lehetosegeket is, ahol az elso reteg csak elfogadast es testreszabast kinal. A megfelelo pillanat megvarasa. Az elutasitasra kattintas utan az oldal jelentos valtozasokon mehet keresztul: a banner eltunik (gyakran animacioval), a CMP hozzajarulasi allapot visszahivasokat indit, a tag managerek ujraertekelik szabalyaikat, es szkriptek toltodhetnek be vagy ki. A cookie-k tul korai ellenorzese a kozbulso atmeneti allapotot ragadja meg. A tul keso ellenorzes kihagy olyan atmeneti kovetest, amely gyorsan indul es fejezodik be. Tobb jelu varakozast hasznalunk: halozati tetelenseg, DOM-stabilitas es minimum kesleltetesi kuszob, amelyet szazas CMP-konfiguracion vegzett empirikus tesztelesbol hangoltunk. Az ujratoltes teszt es a consent respawn. Az ujratoltesi lepes volt az, ami feltarta a consent respawnt mint jelenseget. Nem azzal a cellal indultunk, hogy megtaljuk -- az eredeti elutasitasi tesztunk csak az azonnali elutasitas utani allapotot ellenorizte. De a fejlesztes soran eszrevettuk, hogy oldalak, amelyek az elutasitas utan tisztanak tuntek, koveto cookie-kkal rendelkeztek, amikor az oldal ujratoltese utan ellenoriztuk. A kezdeti hibakeresés szkenner idozitesi problematikát feltetelezett. A tovabbi vizsgalat megeroositette, hogy valos: harmadik feles szkriptek cookie-kat allitanak be ujra oldalbetolteskor, fuggetlenul a hozzajarulasi allapottol.Explicit respawn-eszlelest adtunk a pipeline-hoz: az elutasitasi folyamat utan a szkenner ujratolti az oldalt, megvarja a stabilizalodast, es osszehasonlitja a cookie-leltart az elutasitas utani pillanatkeppel. Bármely cookie, amelyet az elutasitas eltavolitott es az ujratoltes utan ujra megjelenik, respawnkent kerül megjelölésre. Ez 1 642 oldalt talalt 4 932 respawnoló cookie-val -- egy megallapitas, amely az ujratoltesi lepes nelkul lathatatlan maradt volna.
A `waitForScriptIdentifiedCMP` polling. Nehany CMP aszinkron modon toltodik be es nem jeleniti meg a bannert, amig tobb masodperc nem telik el a kezdeti oldalbetoeltés utan. Ha a szkenner az elutasitasi lepeshez lep, mielott a CMP inicializálódott volna, vagy teljeesen kihagyja a bannert, vagy egy reszlegesen betoltott felhasznaloi felultettel interakciol. Pollingo mechanizmust implementaltunk, amely megvarja, amig a CMP JavaScript API-ja elerhetove valik (pl. `__tcfapi` a TCF-alapu CMP-knel, `Cookiebot` globalis a Cookiebot eseten), mielott folytatna. Ez vizsgálatonkent latencat ad hozza, de jelentosen csokkenti a hamis negativokat az aszinkron CMP-betoltesbol.3. kihivas: Pipeline-telitettseg nagy leptekben
97 304 weboldal vizsgalata nem egyetlen gepes feladat. Minden vizsgalat elindít egy Chromium folyamatot, egy weboldalra navigal, szazas halozati kerest fog el es sorol be, tobb kepernykepet keszit es elemzesi modulokat futtat. Egyetlen vizsgalat 30-90 masodpercig tart az oldal osszetettesegetol fuggoen. 15 egyideju vizsgalattal workeronkent az erorforras-kezeles valik az elsdoleges mernoki problemva.
A szemafor-architektura
Szemafor-alpu parhuzamossagi modellt hasznalunk az egyideju Chromium-folyamatok szamanak korlatozasara workeronkent. Minden worker fix szemaforral rendelkezik (15 hely a produkcios konfiguracionkban). Egy vizsgalat helyet foglal a bongeszo elinditas elott es felszabaditja a befejezeskor. Ez megakdalyozza a memoria kimeruleset -- 15 teljes kereselfogassal rendelkezo Chromium-peldany mar jelentos RAM-ot fogyaszt -- es ellennyomast biztosit a Redis sorovaal szemben.
A dokumentum-keres kivetel
A fejlesztes koran egy atmentikapacitasi problemaba utkiztunk: a kereselfogasi logikank (amely minden kerest megvizsgal SSRF-biztonsag szempontjabol -- blokkolja a privat IP tartomanyokra, belso halozatokra es mas potencialisan veszelyes celpontokra iranyulo kereseket) latenciat adott minden eroforrás-betolteshez, beleertve a fo dokumentum-kerest is. Mivel a dokumentum URL-t mar a vizsgalat megkezdese elott validaltuk, gyorsitott utvonal megkerulest adtunk hozza: a dokumentum-tipusu keresek az elozetesen validalt cel URL-re atugorjak a teljes elfogási pipeline-t. Ez a latszólag kis optimalizalas jelentos hatast gyakorolt az ossz-atmeneti kapacitasra, mert a dokumentum-keres mindent blokkol.
DNS elo-melegites
Egy uj domen elso keresea DNS-feloldasal jar, ami az infrastrukturankon 50-200ms-et adhat domenenkeent. Atlagosan 10,4 harmadik fel domen (es nehany oldal akár 171) megkereseval a DNS-feloldasi ido jelentosen halmozodott. DNS elo-melegtest implementaltunk helyi Unbound DNS-resolver gyorsitotarral: minden vizsgalat elott feloldjuk a cel domaint es felmelegitjuk a gyorsitotarat. Az Unbound peldany gyorsitotarazott valaszokat szolgaltat a vizsgalaton beluli kovetkezo feloldasokhoz, domenenkeneti DNS-terhelest ezredmasodperc ala csokkentve.
SSRF-biztonsag nagy leptekben
A szkenner altal elfogott minden kerest biztonsagi szabalyok alapjan ellenorzunk, mielott tovabbengednenk. A privat IP-tartomanyokra iranyulo keresek (RFC 1918, RFC 4193, link-local, loopback) blokkolva vannak. Ez megakadaályozza, hogy egy rosszindulatu celoldal a szkennert SSRF-vektorkent hasznalja belso halozatok feligyelesehez.
A nagy lepteku kihivas a valos SSRF-blokkolas es a szemafor-telitettseg megkulonboztetese volt. Amikor mind a 15 szemafor-hely foglalt es egy vizsgalat nem tud helyet szerezni, az eredmenyezo idotullepes felszinesen hasonlit egy biztonsagi okokbol blokkolt keresre. Explicit hibakategorizalast adtunk hozza a "blokkolva, mert a cel privat IP-re oldodott fel" es a "blokkolva, mert a szkenner kapacitasan van" megkulonboztetesehez. Ez az operativ monitorozashoz es a pontos vizsgálati hibabesorolashoz volt letefontos.
4. kihivas: Bot-kijátszás eszblelés
A tanulmany soran 137 weboldalt azonositottunk, amelyek ugy tunik, szandekosan rejtik el hozzajarulasi bannerjoket az automatizalt szkennerek elol. A bannert emberi latogatoknak szolgaljak ki, de elnyomjak, ha az oldal automatizalt bongeszes jellemzoit eszbeli.
A leggyakoribb mechanizmus, amelyet azonosiotottunk, az RCB (Real Cookie Banner) WordPress beepulo modul `isAcceptAllForBots` konfiguracios beallitasa. Engedelyezeskor ez a beallitas eszbeli az automatizalt bongeszokeset (a `navigator.webdriver`, felhasznaloi ugynok heurisztikak vagy viselkedesi jelek alapjan), es vagy automatikusan elfogadja a hozzajarulast a nevukben, vagy teljesen elrejti a bannert. A szandek, ahogy a beepulo modul dokumentalja, az automatizalt latogatoknak szolgaltatott hozzajarulasi dialogus elkrulese, amellyel azok nem tudnak erdemben interakciolni. A hatas az, hogy a megfelelessi szkennerek -- es az automatizalt eszkozoket hasznalo szabalyozoi auditorok -- egy olyan oldalt latnak, amelyen latszólag nincs hozzajarulasi mechanizmus, miközben az emberi latogatok teljes hozzajarulasi bannert latnak.
Ez atlathatosagi problema. Ha egy weboldal hozzajarulasi mechanizmusa csak emberi latogatoknak lathato, nem auditalhato nagy leptekben. Ezeket az oldalakat kulon jeloljuk az eredmenyeinkben, mert a megallapitas minoseegileg kulonbozik a "nem eszlelt banner"-tol. Az oldalnak van bannere; azt valasztja, hogy nekunk nem mutatja meg.
A bot-kijatszast jelek kombinaciojaval eszeleljuk: ismert bot-eszblelési konfiguracio jelenlete a CMP beallitasokban (JavaScript vizsgalattal elerheto), elteresek a DOM tartalma es a CMP API jelentese kozott, es nehany esetben az automatizalt vizsgalati eredmenyek es a manualis ellenorzes osszehasonlitasaval.
A 137-es szam biztosan alulbecsles. Csak akkor tudjuk eszbelni a bot-kijatszast, ha azonositani tudjuk a mechanizmust. A kifinomultabb vagy egyedi bot-eszblelest hasznalo oldalak sikeresen kijatszhatjak mind a szkennerunket, mind a kijátszas-eszbeleseneket.
5. kihivas: CMP-felreismeres
Egy oldal tobb szkriptet is betolthet, amelyek hozzajarulas-kezelo platformnak tunenek. A PiwikPRO tartalmaz CMP-komponenst, de elsosorban analitikai csomag. Nehany WordPress oldal a Complianz-t tolti be egy kulon analitikai beepulo modul mellett, amelynek CMP-szeru funkcioi vannak. Nagyvallalati oldalakion elozo CMP maradványai toltodhetnek be a jelenlegi mellett.
A naiv eszbeles -- "ha latjuk a szkriptet, az a CMP" -- hamis azonositasokat eredmenyez, amelyek tovagyuruznek a helytelen banner-interakciolba. Ha a szkenner a PiwikPRO-t azonositja CMP-kent es a PiwikPRO banner-szelektorait probalja hasznalni, kihagyhatja a valodi tarteaucitron bannert, amely vezerli a hozzajarulast az oldalon.
A bizalomalpu megkozelitesunk a CMP-jeloltek rangsorolasaval kezeli ezt. Tobb potencialis CMP eszbelesekor:
1. Ellenorizzuk, melyiknek van lathato bannere a DOM-ban (szkript jelen van, de banner nincs, valoszinuleg inaktiv vagy nem CMP hasznalat).
2. Ellenorizzuk, melyik tesz kozze aktiv CMP API-t (pl. mukodo `__tcfapi` vagy egyenerteku).
3. Elonyben reszesitjuk azt a CMP-t, amelynek ellenorzott szelektorai latható DOM-elemekhez illeszkednek, a csupan szkript URL-bol eszleltettel szemben.
Ez a heurisztika nem tokeletes, de feloldotta a leggyakoribb felreismeresi eseteket, amelyekkel a fejlesztes es a teszteles soran talalkztunk.
Korlatazasok
Egyetlen automatizalt szkenner sem replikálja tokeeletesen minden emberi bongeszesi elmenyt. Ezek az ismert korlatozasok:
GeoIP-fuggo bannerek. Nehany CMP, kulonosen a CookieYes, kulonbozo hozzajarulasi elmenyeket szolgaltat a latogato IP-geolokacioja alapjan. Vizsgalataink meghatarozott europai halozati helyekrol indulnak. Egy oldal, amely frannciaorszagi latogatoknak mutat hozzajarulasi bannert, de EU-n kivuli latogatoknak nem, kulonbozo eredmenyeket mutat a vizsgalat eredetoletol fuggoen. Jelenleg nem vizsgalunk minden oldalt minden EU-orszagbol. Zart shadow DOM. Nehany CMP a bannert zart shadow DOM-ba rendereli, amely nem elerheto standard DOM-lekerdesekkel a `document.querySelector`-en keresztul. A Transcend CMP-je ezt a megkozelitest hasznalja. Szkennerunk eszbeli a shadow host elemet, de nem tudja megvizsgalni a tartalmat az elfogado/elutasito gombok megtalalasahoz. Ezek az oldalak altalaban nem meggyozoként kerulnek be az eredmenyeinkbe. Dinamikus osztalynevek es zavarás. Nehany CMP, kulonosen az Admiral, dinamikusan generalt osztalyneveket hasznal, amelyek minden oldalbeotlteskor valtoznak. A szelektor-alpu eszbeles sikertelen ezeknel, mert a szelektorok nem stabilak a latogatasok kozott. Altalanos heurisztikakra esunk vissza, de a bizalom alacsonyabb. Egyoldalas alkalmazasok. Azok az SPA-k, amelyek teljesen kliens oldali JavaScriptben kezelik a hozzajarulasi allapotot es a hozzajarulasi mechanizmust a kezdeti utvonalvaltozasok utan toltik be (nem a kezdeti oldalbetolteskor), nehezebben ertekelhetok. Szkennerunk az URL-re navigal es megvarja az oldal stabilizalodasat, de nem szimulal alkalmazon beluli navigaciot. A csak az SPA-n beluli navigacio utan megjeleno hozzajarulasi banner kihagyasra kerulhet. Nyelvi lefedettsg. Elutasito gomb eszbelesunk szovegegyeztest hasznal tamogatott nyelvek halmazaval, de nem fedunk le minden EU-s nyelvet egyenletesen. Egy malta vagy eszt nyelvu banner elutasito gomb cimkei nem feltetlenul szerepelnek a szovegegyeztesunkben, ami az elutasitasi tesztek kihagyasahoz vezethet (bar magat a bannert strukturalis heurisztikak meg eszblelhetik). Idozitesi szelsoseges esetek. Egy szkript, amely 30 masodperccel az oldalbetoltes utan tuzel, kihagyasra kerul egy 15 masodperces halozati tetlensegre varo vizsgalatnal. Nagyvonalubb idokorlátokat hasznalunk, de az aszinkron viselkedes hosszu farka eredendoen neheezen ragadhato meg teljesen.Ezek a korlatozasok jarulnak hozza a 14,9%-os nem megalapozott aranyunkhoz.
Az infrastruktura
A produkcios vizsgalati infrastruktura a kovetkezokbol all:
- Vizsgalati motor: Egy Go alkalmazas, amely a chromedp-t hasznalja CDP klienskent a Chromium automatizalashoz. A Go-t a parhuzamossagi modellje (goroutine-ok es csatornak termeszetesen illenek a parhuzamos vizsgalat-orkesztraciora), teljesitmenyjellemzoi es telepitesi egyszeerusege (egyetlen statikus binaris) miatt valasztottuk.
- Bongeszo futatokrnyezet: Fejonkeneti headless Chromium, amely CDP-n keresztul indul vizsgalatonkent. Minden vizsgalat tiszta bongeszofolyamatot kap nulla megosztott allapottal.
- Sor: Redis-alapu munksor, amely URL-eket oszt el a szkenner workerek kozott. A Redis kezeli a feladatelosztast, az elorehaladas koveteset es a sebessekorlatozast.
- Adatbazis: PostgreSQL a tartos vizsgalati eredmenyekhez, megallapitasokhoz, bizonyitek-metaadatokhoz es minden strukturalt adathoz. Vizsgalatok, megallapitasok, cookie-k, keresek es elemzesi kimenetek mind relacisan taroltak.
- DNS gyorsitar: Helyi Unbound resolver, amely gyorsitotarazott DNS-feloldasokat es SSRF-bizonságos feloldast nyujt.
- Bizonyitek-tarolas: Kepernyokepek, HAR fajlok es PDF jelnetesek tartos eloformsokkentt tarolva, vizsgalati rekordokhoz kapcsolva.
A 97 304 oldalas tanulmanyhoz 114 748 jelolt URL-t dolgoztunk fel (97 304 sikeresen befejezve) korulbelul 2,5 nap alatt 3 szerverpeldanyon, amelyeken parhuzamosan futottak szkenner workerek. Minden szerver tobb worker folyamatot futtatott egyenkent 15 egyideju vizsgalati hellyel. A csucsatmenti kapacitas korulbelul 25-30 befejezett vizsgalat volt percenkent szerverenkkent.
Az elsdoleges szuk keresztmetszet nem a CPU vagy a memoria volt, hanem a halozat: minden vizsgalat szazas kimeno kerest general (a celoldalra es harmadik feles erorforrasokra), es az osszes egyideju vizsgalat osszeesitett savszelessege es kapcsolatszama a hallozati kapacitast telitette, mielott mas erorforrasok kimerultek volna.
Nyitott kihivasok es jovobeli munka
Tobb problema megoldatlan vagy reszlegesen megoldott:
Hozzajarulasi banner lokalizacio. Szovegegyeztesunk lefedi a fo EU-s nyelveket, de hianyos a kisebb nyelvi kozossegek eseten. A lefedettsg bővitese nem csupan forditasok hozzaadasat igényli, hanem annak validalasat is, hogy a szelektorok es interakcios mintak megfeloen mukodnek a lokalizalt CMP-verziokkal. Hosszmetszeti monitoring. Jelenlegi architekturank pontszeru vizsgalatokra optimalizalt. A hozzajarulasi viselkedes idsobeli valtozasainak eszbelesehez -- javult-e egy oldal az ervenyre juttatas utan? Egy CMP-frissites kijavitott-e egy elutasitasi hiba-osztalyt? -- ismetelt vizsgalatok szuksegesek differencial elemzessel, ami architekturalisan kulonbozik az egyetlen felmeerestol. CMP megfelelessi benchmarking. Rendelkezunk az adatokkal a CMP-nkenti megfelelessi aranyok ertekelesehz (jobb megfelelessgel jar-e a Cookiebot, mint a OneTrust?), de a CMP minosege es az oldal-uzemelteto konfiguracios minosege kozotti szétvalasztas modszertanilag osszetett. Egy CMP, amelyet gyakrabban telepitenek dedikalt adatvedelmi csapatokkal rendelkezo nagyvallalatok, osszesitettten jobban fog kinezni, meg ha az eszkoz maga nem is megfelelobb. Valos ideju hozzajarulasi allapot ellenorzes. A jelenlegi szkenner kotegelt módban mukodik. A hozzajarulasi ellenorzes CI/CD pipeline-okba vagy valos ideju monitorozasba valo integralasa gyorsabb, konnylebb vizsgalati modot igenyel, amely felaldoz nemi bizonyitek-melyseeget a sebessegeert. Ezt kutatjuk.Az API
Ugyanaz a vizsgalati motor, amelyet ebben a bejegyzesben leirtunk, elerheto a GDPR Monitor nyilvanos API-jan keresztul. Programoozottan kuldhet vizsgalati kereseket, lekerdezheti az eredmenyeket, es lekerheti a strukturalt megallapitasokat es bizonyitek-elorformasokat. Az API ugyanazokat az adatokat adja vissza, amelyeket a felhasznaloi felulettunk megjelenit: hozzajarulas elotti pillanatkepek, cookie-leltarak, CMP-eszblelesi eredmenyek, elutasitasi folyamat kimenetek, kockazati pontszamok es teljes bizonyiteklanncok.
Ha megfelelessi eszkozoket epit, adatvedelmi ellenorzeseket integralal CI/CD pipeline-okba, sajat kutatast vegez, vagy monitorozast epitt be adatvedelmi programjaba, az API hozzaferst biztosit a viselkedesi hozzajarulasi elemzeshez anelkul, hogy sajat Chromium automatizalasi infrastrukturat kellene epiteenie es karbantartania.
Problja ki maga. Az API dokumentacio elerheto a gdprprivacymonitor.eu/developers/api cimen. Kuldjon egyetlen URL-t vagy integraljon automatizalt adatvedelmi monitorozast a munkafolyamataba.
Ellenőrizze weboldalát
Futtasson ingyenes GDPR-megfelelőségi vizsgálatot — regisztráció nélkül.
Vizsgálja meg weboldalát ingyen