Salt la conținut

Tehnic

How We Built a System That Scans 100,000 Websites for Cookie Consent Violations

GDPR Privacy Monitor Engineering · 2026-04-13 · 7 min citire

Verificarea automatizata a conformitatii consimtamantului pare simpla pana cand incercati sa o construiti. Abordarea naiva -- preluarea unei pagini, verificarea cookie-urilor, cautarea unui banner -- rateaza cea mai mare parte din ceea ce conteaza. Incalcarile consimtamantului sunt comportamentale, nu structurale. Ele se manifesta in sincronizarea executiei scripturilor, secventa cererilor de retea, raspunsul elementelor de interfata la interactiunea utilizatorului si persistenta starii intre incarcari de pagina. Nu puteti evalua nimic din toate acestea fara a rula un browser real, a interactiona cu pagina asa cum ar face un om si a inregistra ce se intampla de fapt la nivel de retea.

Aceasta postare descrie cum am construit motorul de scanare din spatele GDPR Monitor, provocarile de inginerie care ne-au consumat cea mai mare parte a timpului, deciziile arhitecturale pe care le-am luat si de ce, precum si limitarile fata de care suntem onesti. Daca lucrati in domeniul conformitatii web, automatizarii browserului sau masuratorilor web la scara larga, ar trebui sa gasiti ceva util aici.

Prezentarea generala a pipeline-ului

Fiecare scanare parcurge sase etape. Intelegerea pipeline-ului este contextul necesar pentru provocarile specifice care urmeaza.

Etapa 1: Lansarea browserului si izolarea. O instanta Chromium noua porneste cu stare zero -- fara cookie-uri, fara localStorage, fara cache, fara service workers. Aceasta este garantia de camera curata care face masurarea pre-consimtamant semnificativa. Configuram un viewport standard, headere realiste de user-agent si Accept-Language corespunzatoare tarii tinta si flag-uri standard de browser. Fiecare scanare primeste propriul proces de browser; nu exista scurgeri de stare intre scanari. Etapa 2: Navigarea si instantaneul pre-consimtamant. Scanerul navigheaza la URL-ul tinta, asteapta ca pagina sa ajunga la o stare stabila (retea inactiva, DOM stabilizat) si captureaza tot ce s-a intamplat: cookie-uri setate, cereri de retea efectuate (cu URL complet, sincronizare si metadate de raspuns), domenii terte contactate si o captura de ecran a intregii pagini. Acest instantaneu raspunde la intrebarea fundamentala: ce a facut acest site web inainte ca utilizatorul sa aiba vreo oportunitate de a consimti? Etapa 3: Detectarea CMP si identificarea bannerului. Scanerul incearca sa identifice platforma de gestionare a consimtamantului si sa localizeze bannerul de consimtamant, butonul de acceptare si butonul de refuz. Aceasta foloseste un sistem de detectare stratificat descris in detaliu mai jos. Etapa 4: Interactiunea cu consimtamantul. Scanerul interactioneaza cu bannerul -- dand clic pe acceptare pentru fluxul standard, dand clic pe refuz pentru testul fluxului de refuz. Asteapta ca pagina sa se stabilizeze dupa interactiune, tinand cont de animatii, reevaluarea scripturilor si declansarea intarziata a tag-urilor. Etapa 5: Instantaneul post-consimtamant si analiza diferentiala. Un al doilea instantaneu complet captureaza starea dupa interactiunea cu consimtamantul. Compararea instantaneelor pre-consimtamant si post-consimtamant dezvaluie ce s-a schimbat: cookie-uri noi, cereri noi de urmarire, starea consimtamantului in API-urile CMP. Etapa 6: Analiza, clasificarea si generarea raportului. Datele brute alimenteaza modulele de analiza: clasificarea cookie-urilor in raport cu baza noastra de date, potrivirea trackerelor cu tipare cunoscute, evaluarea duratei de viata a cookie-urilor, auditul de accesibilitate al bannerului, validarea Google Consent Mode, detectarea semnalelor de fingerprinting si punctajul de risc. Rezultatul este un raport structurat cu constatari, artefacte de dovezi si un scor de risc compozit.

Fiecare etapa produce dovezi cu marca temporala care sunt stocate durabil. Orice constatare poate fi trasata inapoi la cereri de retea specifice, intrari de cookie-uri sau capturi de ecran.

Provocarea 1: Detectarea CMP -- 45 de platforme, variatii infinite

Gestionarea consimtamantului nu este standardizata. Nu exista un atribut HTML universal, nicio API JavaScript obligatorie, nicio structura DOM consistenta care sa spuna "acesta este un banner de consimtamant". Exista 45 de CMP-uri distincte in biblioteca noastra de detectare, fiecare cu propria structura DOM, semnaturi de scripturi, variabile globale JavaScript si tipare de interactiune. Dincolo de acestea, 34,7% din bannerele pe care le-am detectat in studiul nostru pe 97.304 site-uri au fost generice sau neidentificate -- implementari personalizate, furnizori regionali sau solutii minimale care nu corespund niciunei semnaturi CMP cunoscute.

Detectarea noastra foloseste o abordare stratificata, bazata pe incredere:

Stratul 1: Detectarea semnaturii scripturilor

Scanerul verifica prezenta scripturilor CMP cunoscute prin tiparul URL-ului si variabilele globale JavaScript. Cookiebot, de exemplu, se incarca de la `consent.cookiebot.com` si expune `window.Cookiebot`. OneTrust se incarca de la `cdn.cookielaw.org` si expune `window.OneTrust`. Fiecare CMP are tipare caracteristice de incarcare care pot fi detectate inainte de examinarea DOM-ului.

Acest strat este rapid si cu incredere ridicata cand se potriveste. Dar are o limitare critica: va spune care CMP este prezent pe pagina, nu neaparat care CMP este responsabil de bannerul de consimtamant. Un site ar putea incarca PiwikPRO pentru analiza (care include o componenta CMP) in timp ce foloseste tarteaucitron pentru gestionarea efectiva a consimtamantului. Detectarea ambelor scripturi este usoara; a sti care controleaza bannerul este mai dificil.

Stratul 2: Potrivirea selectoarelor verificate

Pentru fiecare CMP cunoscut, mentinem un set curat de selectoare CSS care identifica in mod fiabil containerul bannerului, butonul de acceptare si butonul de refuz. Acestea sunt selectoare pe care le-am validat pe mai multe versiuni si configuratii ale fiecarui CMP. Cand un CMP este detectat in Stratul 1 si selectoarele sale verificate se potrivesc cu elementele din DOM, avem incredere ridicata atat in identificarea CMP-ului, cat si in tintele de interactiune cu bannerul.

Stratul 3: Potrivirea selectoarelor compatibile

Un set mai larg de selectoare care functioneaza pe mai multe versiuni ale unui CMP, dar sunt mai putin precise. Acestea gestioneaza cazurile in care un CMP a fost personalizat, tematizat sau ruleaza o versiune neacoperita de selectoarele noastre verificate. Sacrifica precizia in favoarea acoperirii.

Stratul 4: Euristici generice

Pentru cele 34,7% din bannere neasociate cu un CMP cunoscut, recurgem la detectia euristica. Scanerul cauta:

  • Elemente cu pozitie fixa sau sticky in apropierea partii de jos sau de sus a viewport-ului
  • Elemente care contin cuvinte cheie legate de consimtamant in mai multe limbi ("cookies," "consent," "privacy," "akzeptieren," "accepter," "aceptar," etc.)
  • Butoane cu etichete comune de actiuni de consimtamant ("Accept All," "Reject All," "Manage Preferences," si echivalente)
  • Tipare structurale tipice dialogurilor de consimtamant: fundaluri de suprapunere, containere modale, butoane de inchidere

Acest strat capteaza multe implementari personalizate, dar este inerent mai putin fiabil. Un banner promotional cu pozitie fixa sau o inscriere la newsletter poate arata structural similar cu un dialog de consimtamant.

Stratul 5: Interogarea API-ului CMP

Unele CMP-uri expun API-uri JavaScript -- in special API-ul IAB Transparency and Consent Framework (TCF) prin `__tcfapi`. Interogam aceste API-uri atat pentru a verifica detectia CMP, cat si pentru a citi starea programatica a consimtamantului, pe care o comparam ulterior cu comportamentul observat al browserului.

Modelul de incredere

In loc sa tratam detectia ca binara (gasit/negasit), atribuim scoruri de incredere bazate pe care straturi s-au potrivit si cat de puternic. Un site unde detectam un script CMP, potrivim selectoare verificate si gasim un API TCF primeste incredere ridicata. Un site unde doar euristicile generice s-au activat primeste incredere mai scazuta. Acest scor de incredere alimenteaza clasificarea noastra de risc -- increderea mai scazuta in detectie inseamna ca constatarile sunt mai predispuse sa fie clasificate ca neconcludente in loc de definitive.

Modelul de incredere este motivul pentru care identificarea gresita a CMP-ului, desi apare, nu influenteaza sistematic rezultatele noastre. Cand detectia este ambigua, o spunem, in loc sa fortam o clasificare.

Provocarea 2: Fluxul de refuz -- De ce "clic si verifica" este surprinzator de dificil

Testarea unui buton de refuz suna simplu: gaseste-l, da clic pe el, verifica daca cookie-urile au disparut. In practica, fiecare pas este plin de probleme de sincronizare, comportament asincron si particularitati specifice platformei.

Gasirea butonului de refuz. Nu toate butoanele de refuz sunt etichetate "Refuza". Pot spune "Decline All," "Refuse," "Only necessary cookies," "Manage settings" (ducand la un al doilea strat unde refuzul este posibil), sau echivalente in oricare din zeci de limbi. Unele CMP-uri plaseaza optiunea de refuz intr-o locatie vizuala diferita, la o dimensiune diferita sau intr-o culoare diferita fata de optiunea de acceptare. Unele o ascund in spatele unui link "More options" sau "Customize". Scanerul nostru mentine un set multilingv de tipare de actiuni de refuz si detecteaza, de asemenea, optiunile de refuz din al doilea strat, acolo unde primul strat ofera doar acceptare si personalizare. Asteptarea momentului potrivit. Dupa ce se da clic pe refuz, pagina poate suferi schimbari semnificative: bannerul se inchide (adesea cu animatie), CMP-ul declanseaza callback-uri de stare a consimtamantului, managerii de tag-uri isi reevalueaza regulile, iar scripturile pot fi incarcate sau descarcate. Verificarea cookie-urilor prea devreme captureaza starea de tranzitie. Verificarea prea tarzie rateaza urmarirea tranzitorie care se declanseaza si se finalizeaza rapid. Folosim o asteptare multi-semnal: retea inactiva, stabilitate DOM si un prag minim de intarziere, calibrat din testare empirica pe sute de configuratii CMP. Testul de reincarcare si reaparitia consimtamantului. Pasul de reincarcare este cel care a dezvaluit reaparitia consimtamantului ca fenomen. Nu am pornit sa o gasim -- testul nostru initial al fluxului de refuz verifica doar starea imediat dupa refuz. Dar in timpul dezvoltarii, am observat site-uri care aratau curate dupa refuz, dar aveau cookie-uri de urmarire cand am verificat din nou dupa o reincarcare a paginii. Depanarea initiala a presupus o problema de sincronizare a scanerului. Investigarea ulterioara a confirmat ca era real: scripturi terte resetand cookie-uri la incarcarea paginii, indiferent de starea consimtamantului.

Am adaugat detectia explicita a reaparitiei in pipeline: dupa fluxul de refuz, scanerul reincarca pagina, asteapta stabilitatea si compara inventarul de cookie-uri cu instantaneul de dupa refuz. Orice cookie care a fost eliminat prin refuz si reapare dupa reincarcare este semnalat ca reaparitie. Aceasta a captat 1.642 site-uri cu 4.932 cookie-uri care au reaparut -- o constatare care ar fi fost invizibila fara pasul de reincarcare.

Sondajul `waitForScriptIdentifiedCMP`. Unele CMP-uri se incarca asincron si nu isi afiseaza bannerul decat la cateva secunde dupa incarcarea initiala a paginii. Daca scanerul trece la pasul de refuz inainte ca CMP-ul sa se fi initializat, fie rateaza bannerul complet, fie interactioneaza cu o interfata partial incarcata. Am implementat un mecanism de sondare care asteapta ca API-ul JavaScript al CMP-ului sa devina disponibil (de exemplu, `__tcfapi` pentru CMP-urile bazate pe TCF, variabila globala `Cookiebot` pentru Cookiebot) inainte de a continua. Aceasta adauga latenta per scanare, dar reduce semnificativ rezultatele fals negative din incarcarea asincrona a CMP-urilor.

Provocarea 3: Saturarea pipeline-ului la scara

Scanarea a 97.304 site-uri web nu este o sarcina pentru o singura masina. Fiecare scanare lanseaza un proces Chromium, navigheaza la un site web, intercepteaza si clasifica sute de cereri de retea, face mai multe capturi de ecran si ruleaza module de analiza. O singura scanare dureaza 30-90 secunde in functie de complexitatea site-ului. La 15 scanari simultane per worker, gestionarea resurselor devine preocuparea principala de inginerie.

Arhitectura cu semafor

Folosim un model de concurenta bazat pe semafor pentru a limita numarul de procese Chromium simultane per worker. Fiecare worker are un semafor fix (15 sloturi in configuratia noastra de productie). O scanare achizitioneaza un slot inainte de a lansa browserul si il elibereaza la finalizare. Aceasta previne epuizarea memoriei -- 15 instante Chromium cu interceptare completa a cererilor consuma deja RAM semnificativ -- si ofera contrapresiune impotriva cozii Redis.

Exceptia cererii de document

La inceputul dezvoltarii, am intampinat o problema de debit: logica noastra de interceptare a cererilor (care inspecteaza fiecare cerere pentru siguranta SSRF -- blocand cererile catre intervalele de IP private, retelele interne si alte tinte potential periculoase) adauga latenta la fiecare incarcare de resursa, inclusiv cererea principala de document. Deoarece URL-ul documentului a fost deja validat inainte de inceperea scanarii, am adaugat o cale rapida de ocolire: cererile de tip document catre URL-ul tinta pre-validat sar peste pipeline-ul complet de interceptare. Aceasta optimizare aparent mica a avut un impact semnificativ asupra debitului general, deoarece cererea de document blocheaza totul in rest.

Pre-incalzirea DNS

Prima cerere catre un domeniu nou implica o cautare DNS, care pe infrastructura noastra putea adauga 50-200ms per domeniu. Cu media de 10,4 domenii terte contactate de site-ul mediu (si unele contactand pana la 171), timpul de rezolutie DNS se acumula semnificativ. Am implementat pre-incalzirea DNS folosind un cache local de resolver DNS Unbound: inainte de fiecare scanare, rezolvam domeniul tinta si incalzim cache-ul. Instanta Unbound serveste raspunsuri din cache pentru cautarile ulterioare din cadrul scanarii, reducand suprasolicitarea DNS per domeniu la sub-milisecunda.

Siguranta SSRF la scara

Fiecare cerere interceptata de scaner este verificata fata de un set de reguli de siguranta inainte de a fi permisa. Cererile catre intervalele de IP private (RFC 1918, RFC 4193, link-local, loopback) sunt blocate. Aceasta previne ca un site tinta malitios sa foloseasca scanerul ca vector SSRF pentru a sonda retelele interne.

Provocarea la scara a fost diferentierea blocajelor SSRF reale de saturarea semaforului. Cand toate cele 15 sloturi de semafor sunt in uz si o scanare nu poate achizitiona un slot, timeout-ul rezultat arata superficial similar cu o cerere blocata din motive de siguranta. Am adaugat categorizare explicita a erorilor pentru a distinge "blocat pentru ca tinta s-a rezolvat la un IP privat" de "blocat pentru ca scanerul este la capacitate". Aceasta a fost esentiala pentru monitorizarea operationala si pentru clasificarea corecta a esecurilor de scanare.

Provocarea 4: Detectarea evitarii de boti

In timpul studiului, am identificat 137 site-uri web care par sa ascunda deliberat bannerul de consimtamant de la scanerele automate. Bannerul este servit vizitatorilor umani, dar suprimat cand site-ul detecteaza caracteristici ale navigarii automate.

Cel mai comun mecanism pe care l-am identificat implica optiunea de configurare `isAcceptAllForBots` din pluginul WordPress RCB (Real Cookie Banner). Cand este activata, aceasta setare detecteaza browserele automate (prin `navigator.webdriver`, euristici de user-agent sau semnale comportamentale) si fie accepta automat consimtamantul in numele lor, fie ascunde complet bannerul. Intentia, asa cum este documentata de plugin, este de a preveni servirea unui dialog de consimtamant vizitatorilor automate cu care nu pot interactiona in mod semnificativ. Efectul este ca scanerele de conformitate -- si auditorii de reglementare care folosesc instrumente automate -- vad un site care pare sa nu aiba niciun mecanism de consimtamant, cand vizitatorii umani vad un banner complet de consimtamant.

Aceasta este o problema de transparenta. Daca mecanismul de consimtamant al unui site web este vizibil doar pentru vizitatorii umani, nu poate fi auditat la scara. Semnalam aceste site-uri separat in rezultatele noastre deoarece constatarea este calitativ diferita de "banner nedetectat". Site-ul are un banner; alege sa nu ni-l arate.

Detectam evitarea botilor printr-o combinatie de semnale: prezenta configuratiei cunoscute de detectare a botilor in setarile CMP (accesibila prin inspectie JavaScript), discrepante intre ceea ce arata DOM-ul si ceea ce raporteaza API-ul CMP-ului, si in unele cazuri prin compararea rezultatelor scanarii automate cu verificarea manuala.

Cifra de 137 este cu siguranta o subestimare. Putem detecta evitarea botilor doar cand putem identifica mecanismul. Site-urile care folosesc detectii de boti mai sofisticate sau personalizate pot evita cu succes atat scanerul nostru, cat si detectia noastra de evitare.

Provocarea 5: Identificarea gresita a CMP-ului

Un site poate incarca mai multe scripturi care arata ca platforme de gestionare a consimtamantului. PiwikPRO include o componenta CMP, dar este in principal o suita de analiza. Unele site-uri WordPress incarca Complianz alaturi de un plugin separat de analiza care are caracteristici asemanatoare CMP-ului. Site-urile de intreprindere pot avea ramasite ale unui CMP anterior care se incarca inca alaturi de cel actual.

Detectia naiva -- "daca vedem scriptul, este CMP-ul" -- produce identificari false care se cascadeaza in interactiuni incorecte cu bannerul. Daca scanerul identifica PiwikPRO ca CMP si incearca sa foloseasca selectoarele de banner ale PiwikPRO, poate rata bannerul real tarteaucitron care controleaza consimtamantul pe site.

Abordarea noastra bazata pe incredere rezolva aceasta problema prin clasificarea candidatilor CMP. Cand sunt detectate mai multe CMP-uri potentiale:

1. Verificam care are un banner vizibil in DOM (script prezent dar fara banner inseamna probabil inactiv sau utilizare non-CMP).

2. Verificam care expune un API CMP activ (de exemplu, un `__tcfapi` functional sau echivalent).

3. Preferam CMP-ul ale carui selectoare verificate se potrivesc cu elementele DOM vizibile in detrimentul celui detectat doar prin URL-ul scriptului.

Aceasta euristica nu este perfecta, dar a rezolvat cele mai comune cazuri de identificare gresita intalnite in timpul dezvoltarii si testarii.

Limitari

Niciun scaner automat nu reproduce perfect fiecare experienta de navigare umana. Acestea sunt limitarile cunoscute:

Bannere dependente de GeoIP. Unele CMP-uri, in special CookieYes, servesc experiente de consimtamant diferite in functie de geolocalizarea IP-ului vizitatorului. Scanarile noastre au origine din locatii de retea specifice din Europa. Un site care arata un banner de consimtamant vizitatorilor din Franta, dar nu vizitatorilor din afara UE, va arata rezultate diferite in functie de originea scanarii. In prezent nu scanam fiecare site din fiecare tara UE. Shadow DOM inchis. Unele CMP-uri isi afiseaza bannerul in interiorul unui shadow DOM inchis, care este inaccesibil interogatilor DOM standard prin `document.querySelector`. CMP-ul Transcend foloseste aceasta abordare. Scanerul nostru poate detecta elementul gazda shadow, dar nu poate inspecta continutul sau pentru a gasi butoanele de acceptare/refuz. Aceste site-uri ajung de obicei ca neconcludente in rezultatele noastre. Nume de clase dinamice si obfuscare. Unele CMP-uri, in special Admiral, folosesc nume de clase generate dinamic care se schimba la fiecare incarcare de pagina. Detectia bazata pe selectoare esueaza pentru acestea deoarece selectoarele nu sunt stabile intre vizite. Recurgem la euristici generice, dar increderea este mai scazuta. Aplicatii single-page. SPA-urile care gestioneaza starea consimtamantului in intregime in JavaScript pe partea clientului si incarca mecanismul de consimtamant dupa schimbarile initiale de ruta (in loc de la incarcarea initiala a paginii) sunt mai greu de evaluat. Scanerul nostru navigheaza la URL si asteapta stabilizarea paginii, dar nu simuleaza navigarea in cadrul aplicatiei. Un banner de consimtamant care apare doar dupa ce utilizatorul navigheaza in cadrul SPA-ului poate fi ratat. Acoperirea lingvistica. Detectia noastra a butonului de refuz foloseste potrivirea textului pe un set de limbi acceptate, dar nu acoperim fiecare limba UE in mod egal. Un banner in malteza sau estoniana poate avea etichete ale butonului de refuz pe care potrivirea noastra de text nu le recunoaste, ducand la ratarea testarii fluxului de refuz (desi bannerul insusi poate fi totusi detectat prin euristici structurale). Cazuri limita de sincronizare. Un script care se declanseaza la 30 secunde dupa incarcarea paginii va fi ratat de o scanare care asteapta 15 secunde pentru inactivitatea retelei. Folosim timeout-uri generoase, dar coada lunga a comportamentului asincron este inerent dificil de capturat complet.

Aceste limitari contribuie la rata noastra de 14,9% neconcludente.

Infrastructura

Infrastructura de scanare de productie consta din:

  • Motorul de scanare: O aplicatie Go care foloseste chromedp ca client CDP pentru automatizarea Chromium. Go a fost ales pentru modelul sau de concurenta (goroutine-urile si canalele se mapeaza natural pe orchestrarea scanarilor paralele), caracteristicile de performanta si simplitatea implementarii (un singur binar static).
  • Runtime-ul browserului: Chromium headless lansat per scanare prin CDP. Fiecare scanare primeste un proces de browser nou cu stare zero partajata.
  • Coada: Coada de lucru sustinuta de Redis care distribuie URL-uri catre workerii de scanare. Redis gestioneaza distributia sarcinilor, urmarirea progresului si limitarea ratei.
  • Baza de date: PostgreSQL pentru rezultatele durabile ale scanarilor, constatari, metadate de dovezi si toate datele structurate. Scanarile, constatarile, cookie-urile, cererile si rezultatele analizelor sunt toate stocate relational.
  • Cache DNS: Resolver local Unbound care ofera cautari DNS din cache si rezolutie sigura SSRF.
  • Stocarea dovezilor: Capturile de ecran, fisierele HAR si rapoartele PDF sunt stocate ca artefacte durabile legate de inregistrarile scanarilor.

Pentru studiul pe 97.304 site-uri, am procesat 114.748 URL-uri candidate (97.304 finalizate cu succes) in aproximativ 2,5 zile folosind 3 instante de server care rulau workeri de scanare in paralel. Fiecare server rula mai multe procese de worker cu 15 sloturi de scanare simultane fiecare. Debitul maxim a fost de aproximativ 25-30 scanari finalizate pe minut per server.

Blocajul principal nu a fost CPU-ul sau memoria, ci reteaua: fiecare scanare genereaza sute de cereri de iesire (catre site-ul tinta si resursele sale terte), iar latimea de banda agregata si numarul de conexiuni pe toate scanarile simultane au saturat capacitatea de retea disponibila inainte ca alte resurse sa fie epuizate.

Provocari deschise si lucrari viitoare

Mai multe probleme raman nerezolvate sau partial rezolvate:

Localizarea bannerului de consimtamant. Potrivirea noastra de text acopera limbile majore ale UE, dar este incompleta pentru comunitatile lingvistice mai mici. Extinderea acoperirii necesita nu doar adaugarea traducerilor, ci si validarea ca selectoarele si tiparele de interactiune functioneaza corect cu versiunile localizate ale CMP-urilor. Monitorizarea longitudinala. Arhitectura noastra actuala este optimizata pentru scanare punctuala. Detectarea schimbarilor in comportamentul consimtamantului in timp -- s-a imbunatatit un site dupa aplicare? A remediat o actualizare CMP o clasa de esecuri ale fluxului de refuz? -- necesita scanari repetate cu analiza diferentiala, ceea ce este arhitectural diferit de evaluarea unica. Evaluarea comparativa a conformitatii CMP-urilor. Avem datele pentru a evalua ratele de conformitate per CMP (Cookiebot este asociat cu o conformitate mai buna decat OneTrust?), dar separarea calitatii CMP-ului de calitatea configurarii de catre operatorul site-ului este metodologic complexa. Un CMP care este mai des implementat de intreprinderi mari cu echipe dedicate de confidentialitate va arata mai bine in agregat chiar daca instrumentul in sine nu este mai conform. Verificarea in timp real a starii consimtamantului. Scanerul actual opereaza in mod batch. Integrarea verificarii consimtamantului in pipeline-uri CI/CD sau monitorizare in timp real necesita un mod de scanare mai rapid si mai usor care sacrifica o parte din profunzimea dovezilor pentru viteza. Exploram aceasta directie.

API-ul

Acelasi motor de scanare descris in aceasta postare este disponibil prin API-ul public al GDPR Monitor. Puteti trimite cereri de scanare programatic, sonda pentru rezultate si prelua constatari structurate si artefacte de dovezi. API-ul returneaza aceleasi date pe care le afiseaza interfata noastra: instantanee pre-consimtamant, inventare de cookie-uri, rezultate de detectare CMP, rezultate ale fluxului de refuz, scoruri de risc si lanturi complete de dovezi.

Daca construiti instrumente de conformitate, integrati verificari de confidentialitate in pipeline-uri CI/CD, efectuati propriile cercetari sau integreti monitorizarea intr-un program de confidentialitate, API-ul ofera acces la analiza comportamentala a consimtamantului fara nevoia de a construi si intretine propria infrastructura de automatizare Chromium.


Incercati singuri. Documentatia API este disponibila la gdprprivacymonitor.eu/developers/api. Trimiteti un singur URL sau integrati monitorizarea automatizata a confidentialitatii in fluxul dumneavoastra de lucru.

Verifică-ți site-ul web

Rulează o scanare gratuită de conformitate GDPR — fără înregistrare.

Scanează-ți site-ul web gratuit