Mur għall-kontenut

Tekniku

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

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

Il-verifika awtomatizzata tal-konformità tal-kunsens tidher sempliċi sakemm tipprova tibnijha. L-approċċ naivu -- iġġib paġna, iċċekkja għall-cookies, fittex banner -- titlef il-biċċa l-kbira ta' dak li jgħodd. Il-ksur tal-kunsens huwa mġibi, mhux strutturali. Jimmanifestawhom fit-timing tal-eżekuzzjoni tal-scripts, fis-sekwenza tat-talbiet tan-netwerk, fir-risposta tal-elementi UI għall-interazzjoni tal-utent, u fil-persistenza tal-istat matul page loads. Ma tistax tevalwa xejn minn dan mingħajr ma tħaddem browser reali, tinteraġixxi mal-paġna kif jagħmel bniedem, u tirreġistra x'attwalment jiġri fil-livell tan-netwerk.

Dan l-artiklu jiddeskrivi kif bnejna l-magna tal-iskenjar wara GDPR Monitor, l-isfidi ta' inġinerija li kkonsmaw il-biċċa l-kbira tal-ħin tagħna, id-deċiżjonijiet arkitetturali li ħadna u għaliex, u l-limitazzjonijiet li aħna onesti dwarhom. Jekk taħdem fuq konformità tal-web, awtomazzjoni tal-browser, jew kejl tal-web fuq skala kbira, għandu jkun hemm xi ħaġa utli hawnhekk.

Ħarsa Ġenerali tal-Pipeline

Kull skennja tgħaddi minn sitt stadji. Li tifhem il-pipeline huwa kuntest neċessarju għall-isfidi speċifiċi li jsegwu.

Stadju 1: Ħaddim tal-browser u iżolament. Istanza Chromium ġdida tibda b'żero stat -- l-ebda cookies, l-ebda localStorage, l-ebda cache, l-ebda service workers. Din hija l-garanzija ta' kamra nadifa li tagħmel il-kejl ta' qabel il-kunsens sinifikanti. Nikkonfiguraw viewport standard, headers realistiċi ta' user-agent u Accept-Language li jaqblu mal-pajjiż fil-mira, u flags standard tal-browser. Kull skennja tikseb il-proċess tal-browser tagħha stess; m'hemm l-ebda tnixxija tal-istat bejn l-iskenjiet. Stadju 2: Navigazzjoni u snapshot ta' qabel il-kunsens. L-iskanner jinnaviga għall-URL fil-mira, jistenna li l-paġna tilħaq stat stabbli (netwerk idle, DOM stabbilizzat), u jaqbad kollox li ġara: cookies issettjati, talbiet tan-netwerk magħmula (b'URL sħiħ, timing, u metadata tar-risposta), domini ta' partijiet terzi kkuntattjati, u screenshot tal-paġna sħiħa. Din l-istantanja twieġeb il-mistoqsija fundamentali: x'għamel dan is-sit web qabel ma l-utent kellu kwalunkwe opportunità jagħti l-kunsens? Stadju 3: Detezzjoni tas-CMP u identifikazzjoni tal-banner. L-iskanner jipprova jidentifika l-pjattaforma ta' ġestjoni tal-kunsens u jsib il-banner tal-kunsens, il-buttuna tal-aċċettazzjoni, u l-buttuna tar-rifjut. Dan juża sistema ta' detezzjoni b'diversi livelli deskritta fid-dettall hawn taħt. Stadju 4: Interazzjoni tal-kunsens. L-iskanner jinteraġixxi mal-banner -- jikklikkja aċċetta għall-flussi standard, jikklikkja rifjut għat-test tal-flussi tar-rifjut. Jistenna li l-paġna tistabbilixxi ruħha wara l-interazzjoni, billi jqis l-animazzjonijiet, ir-rivalutazzjoni tal-scripts, u l-isparar ittardjat tat-tags. Stadju 5: Snapshot wara l-kunsens u analiżi differenzjali. Tieni snapshot sħiħ jaqbad l-istat wara l-interazzjoni tal-kunsens. It-tqabbil tal-istantanji ta' qabel u wara l-kunsens jirrivela x'inbidel: cookies ġodda, talbiet ta' traċċar ġodda, stat tal-kunsens fl-APIs tas-CMP. Stadju 6: Analiżi, klassifika, u ġenerazzjoni tar-rapport. Data mhux ipproċessata tmexxi moduli ta' analiżi: klassifika tal-cookies kontra d-database tagħna, tqabbil tat-trackers kontra mudelli magħrufa, evalwazzjoni tat-tul tal-ħajja tal-cookie, awditu tal-aċċessibbiltà tal-banner, validazzjoni ta' Google Consent Mode, detezzjoni ta' sinjali ta' fingerprinting, u skor tar-riskju. Il-prodott huwa rapport strutturat b'sejbiet, artefatti tal-evidenza, u skor kompost tar-riskju.

Kull stadju jipproduċi evidenza b'timestamp li tiġi maħżuna b'mod durabbli. Kwalunkwe sejba tista' tiġi ttreċċata lura għal talbiet speċifiċi tan-netwerk, entries tal-cookies, jew screenshots.

Sfida 1: Detezzjoni tas-CMP -- 45 Pjattaforma, Varjazzjonijiet Infiniti

Il-ġestjoni tal-kunsens mhijiex standardizzata. M'hemm l-ebda attribut HTML universali, l-ebda API JavaScript mandatorja, l-ebda struttura DOM konsistenti li tgħid "dan huwa banner tal-kunsens." Hemm 45 CMP distinta fil-librerija ta' detezzjoni tagħna, kull waħda bl-istruttura DOM tagħha stess, firmi ta' scripts, globals JavaScript, u mudelli ta' interazzjoni. Lil hinn minn dawn, 34.7% tal-banners li ddetektajna fl-istudju tagħna ta' 97,304 sit kienu ġeneriċi jew mhux identifikati -- implimentazzjonijiet personalizzati, fornituri reġjonali, jew soluzzjonijiet minimi li ma jaqblux ma' xi firma CMP magħrufa.

Id-detezzjoni tagħna tuża approċċ b'diversi livelli bbażat fuq il-kunfidenza:

Livell 1: Detezzjoni tal-firma tal-script

L-iskanner jiċċekkja għall-preżenza ta' scripts CMP magħrufa permezz ta' mudelli ta' URL u varjabbli globals JavaScript. Cookiebot, per eżempju, tagħbel minn `consent.cookiebot.com` u tesponi `window.Cookiebot`. OneTrust tagħbel minn `cdn.cookielaw.org` u tesponi `window.OneTrust`. Kull CMP għandha mudelli karatteristiċi ta' tagħbija li jistgħu jiġu ddetettat qabel ma teżamina d-DOM.

Dan il-livell huwa malajr u b'kunfidenza għolja meta jaqbel. Iżda għandu limitazzjoni kritika: jgħidlek liema CMP hija preżenti fuq il-paġna, mhux neċessarjament liema CMP hija responsabbli għall-banner tal-kunsens. Sit jista' jagħbel PiwikPRO għall-analitika (li tinkludi komponent CMP) filwaqt li juża tarteaucitron għall-ġestjoni attwali tal-kunsens. Li tiddettekta ż-żewġ scripts huwa faċli; li tkun taf liema tikkontrolla l-banner huwa aktar diffiċli.

Livell 2: Tqabbil ta' selectors verifikati

Għal kull CMP magħrufa, inżommu sett kurrat ta' CSS selectors li b'mod affidabbli jidentifikaw il-kontenitur tal-banner, il-buttuna tal-aċċettazzjoni, u l-buttuna tar-rifjut. Dawn huma selectors li vvalidajna matul diversi verżjonijiet u konfigurazzjonijiet ta' kull CMP. Meta CMP tiġi ddetettat fil-Livell 1 u s-selectors verifikati tagħha jaqblu ma' elementi fid-DOM, ikollna kunfidenza għolja kemm fl-identifikazzjoni tas-CMP kif ukoll fil-miri tal-interazzjoni tal-banner.

Livell 3: Tqabbil ta' selectors kompatibbli

Sett usa' ta' selectors li jaħdmu matul ħafna verżjonijiet ta' CMP iżda huma inqas preċiżi. Dawn ikopru każijiet fejn CMP ġiet personalizzata, temata, jew qed tħaddem verżjoni mhux koperta mis-selectors verifikati tagħna. Jiskambjaw il-preċiżjoni għall-kopertura.

Livell 4: Ewristika ġenerika

Għat-34.7% tal-banners mhux assoċjati ma' CMP magħrufa, naqgħu lura għal detezzjoni ewristika. L-iskanner ifittex:

  • Elementi b'pożizzjoni fissa jew sticky qrib il-qiegħ jew il-quċċata tal-viewport
  • Elementi li fihom kliem relatat mal-kunsens f'diversi lingwi ("cookies," "consent," "privacy," "akzeptieren," "accepter," "aceptar," eċċ.)
  • Buttunijet b'tikketti ta' azzjoni tal-kunsens komuni ("Accept All," "Reject All," "Manage Preferences," u ekwivalenti)
  • Mudelli strutturali tipiċi tad-djaloġi tal-kunsens: sfondijiet ta' overlay, kontenituri modali, buttunijet ta' skart

Dan il-livell jaqbad ħafna implimentazzjonijiet personalizzati iżda huwa inerentement inqas affidabbli. Banner promozzjonali b'pożizzjoni fissa jew reġistrazzjoni ta' newsletter tista' tidher strutturalment simili għal djalogu tal-kunsens.

Livell 5: Sondaġġ tal-API tas-CMP

Xi CMPs jesponu APIs JavaScript -- l-aktar notevolment l-API tal-IAB Transparency and Consent Framework (TCF) permezz ta' `__tcfapi`. Nissondjaw għal dawn l-APIs kemm biex nivverifikaw id-detezzjoni tas-CMP kif ukoll biex naqraw l-istat programmatiku tal-kunsens, li aktar tard inqabblu mal-imġiba tal-browser osservata.

Il-mudell ta' kunfidenza

Aktar milli nittrattaw id-detezzjoni bħala binarja (instab/ma nstabx), nassenjaw skors ta' kunfidenza bbażati fuq liema livelli qablu u kemm b'mod qawwi. Sit fejn niddetektaw script CMP, naqblu selectors verifikati, u nsibu API TCF tikseb kunfidenza għolja. Sit fejn biss l-ewristika ġenerika ttriġġerjat tikseb kunfidenza aktar baxxa. Dan l-iskor ta' kunfidenza jmexxi l-klassifika tar-riskju tagħna -- kunfidenza aktar baxxa fid-detezzjoni tfisser li s-sejbiet huma aktar probabbli li jiġu klassifikati bħala mhux konklużivi aktar milli definittivi.

Il-mudell ta' kunfidenza huwa l-għaliex l-identifikazzjoni ħażina tas-CMP, għalkemm tiġri, ma tbijasx sistematikament ir-riżultati tagħna. Meta d-detezzjoni hija ambigwa, ngħidu hekk, aktar milli nisfurzaw klassifika.

Sfida 2: Il-Flussi tar-Rifjut -- Għaliex "Ikklikkja u Iċċekkja" Huwa Diffiċli b'Mod Sorprendenti

It-testjar ta' buttuna tar-rifjut jidher sempliċi: sibha, ikklikjha, iċċekkja jekk il-cookies tneħħewx. Fil-prattika, kull pass huwa mimli bi kwistjonijiet ta' timing, imġiba asinkrona, u idejosinkrażiji speċifiċi għall-pjattaforma.

Sib il-buttuna tar-rifjut. Mhux il-buttunijet tar-rifjut kollha huma tikkettati "Reject." Jistgħu jgħidu "Decline All," "Refuse," "Only necessary cookies," "Manage settings" (li jwasslek għal tieni livell fejn ir-rifjut huwa possibbli), jew ekwivalenti f'għexieren ta' lingwi. Xi CMPs ipoġġu l-għażla tar-rifjut f'post viżiv differenti, b'daqs differenti, jew b'kulur differenti mill-għażla tal-aċċettazzjoni. Xi wħud jaħbuha wara link "More options" jew "Customize." L-iskanner tagħna jżomm sett multilingwi ta' mudelli ta' azzjonijiet ta' rifjut u jiddettekta wkoll għażliet ta' rifjut tat-tieni livell fejn l-ewwel livell joffri biss aċċettazzjoni u personalizzazzjoni. Stennija għall-mument it-tajjeb. Wara li tikklikkja rifjut, il-paġna tista' tgħaddi minn bidliet sinifikanti: il-banner jingħalaq (spiss b'animazzjoni), is-CMP tispara callbacks tal-istat tal-kunsens, it-tag managers jerġgħu jevalwaw ir-regoli tagħhom, u scripts jistgħu jiġu mgħobbija jew imneħħija. Li tiċċekkja l-cookies kmieni wisq taqbad l-istat ta' waqt it-tranżizzjoni. Li tiċċekkja tard wisq titlef traċċar tranżitorju li jispara u jlesti malajr. Nużaw stennija b'sinjali multipli: netwerk idle, stabbiltà tad-DOM, u limitu minimu ta' dewmien, kalibrat minn ittestjar empiriku matul mijiet ta' konfigurazzjonijiet CMP. It-test tar-reload u consent respawn. Il-pass tar-reload huwa dak li rrivela consent respawn bħala fenomenu. Ma mortniex infittxuh -- it-test tal-flussi tar-rifjut oriġinali tagħna biss iċċekkja l-istat immedjat wara r-rifjut. Iżda matul l-iżvilupp, innotajna siti li dehru nodfa wara r-rifjut iżda kellhom cookies ta' traċċar meta ċċekkjajna mill-ġdid wara page reload. Id-debugging inizjali assuma problema ta' timing tal-iskanner. Investigazzjoni ulterjuri kkonfermat li kienet reali: scripts ta' partijiet terzi li jerġgħu jissettjaw cookies fuq page load irrispettivament mill-istat tal-kunsens.

Żidna detezzjoni espliċita tar-respawn mal-pipeline: wara l-flussi tar-rifjut, l-iskanner jerġa' jagħbel il-paġna, jistenna l-istabbiltà, u jqabbel l-inventarju tal-cookies mal-istantanja ta' wara r-rifjut. Kwalunkwe cookie li tneħħiet mir-rifjut u terġa' tidher wara r-reload tiġi mmarkjata bħala respawn. Dan qabad 1,642 sit b'4,932 cookie li jerġgħu lura -- sejba li kienet tkun inviżibbli mingħajr il-pass tar-reload.

Il-poll `waitForScriptIdentifiedCMP`. Xi CMPs jagħblu b'mod asinkronu u ma jirrenderjawx il-banner tagħhom sa diversi sekondi wara t-tagħbija inizjali tal-paġna. Jekk l-iskanner jipproċedi għall-pass tar-rifjut qabel ma s-CMP tkun inizjalizzat ruħha, jew jitlef il-banner kompletament jew jinteraġixxi ma' UI parzjalment mgħobbija. Implimentajna mekkaniżmu ta' polling li jistenna li l-API JavaScript tas-CMP ssir disponibbli (eż., `__tcfapi` għal CMPs ibbażati fuq TCF, il-global `Cookiebot` għal Cookiebot) qabel ma jipproċedi. Dan iżid il-latenza għal kull skennja iżda jnaqqas sinifikantement il-pożittivi foloz minn tagħbija asinkrona tas-CMP.

Sfida 3: Saturazzjoni tal-Pipeline fuq Skala

L-iskenjar ta' 97,304 sit web mhuwiex xogħol ta' magna waħda. Kull skennja tħaddem proċess Chromium, tinnaviga għal sit web, tinterċetta u tikklassifika mijiet ta' talbiet tan-netwerk, tieħu diversi screenshots, u tħaddem moduli ta' analiżi. Skennja waħda tieħu 30-90 sekonda skont il-kumplessità tas-sit. B'15-il skennja simultanja għal kull worker, il-ġestjoni tar-riżorsi ssir il-ħsieb primarju tal-inġinerija.

L-arkitettura tas-semaphore

Nużaw mudell ta' konkowrenza bbażat fuq semaphore biex nillimitaw in-numru ta' proċessi Chromium simultanji għal kull worker. Kull worker għandu semaphore fiss (15-il slot fil-konfigurazzjoni tal-produzzjoni tagħna). Skennja takkwista slot qabel ma tħaddem il-browser tagħha u tirrilaxxa meta tlesti. Dan jipprevjeni l-eżawriment tal-memorja -- 15-il istanza Chromium b'interċezzjoni sħiħa tat-talbiet diġà jikkonsmaw RAM sinifikanti -- u jipprovdi backpressure kontra l-kju Redis.

L-eżenzjoni tat-talba tad-dokument

Kmieni fl-iżvilupp, iltqajna ma' problema ta' throughput: il-loġika ta' interċezzjoni tat-talbiet tagħna (li tispezzjona kull talba għas-sigurtà SSRF -- li timblokka talbiet lejn firxiet ta' IP privati, netwerks interni, u miri oħra potenzjalment perikolużi) kienet iżżid latenza ma' kull riżorsa mgħobbija, inkluża t-talba ewlenija tad-dokument. Peress li l-URL tad-dokument diġà ġie vvalidat qabel ma tibda l-iskennja, żidna bypass ta' fast-path: talbiet ta' tip dokument lejn l-URL fil-mira vvalidat minn qabel jevitaw il-pipeline sħiħa ta' interċezzjoni. Din l-ottimizzazzjoni li tidher żgħira kellha impatt sinifikanti fuq it-throughput ġenerali għax it-talba tad-dokument timblokka kollox l-ieħor.

Pre-warming tad-DNS

L-ewwel talba lejn dominju ġdid tinvolvi tiftix DNS, li fuq l-infrastruttura tagħna setgħet iżżid 50-200ms għal kull dominju. Bil-medja ta' sit li jikkuntattja 10.4 domini ta' partijiet terzi (u xi wħud li jikkuntattjaw sa 171), il-ħin tar-riżoluzzjoni DNS akkumula sinifikantement. Implimentajna pre-warming tad-DNS billiużajna cache ta' DNS resolver lokali Unbound: qabel kull skennja, nirrisolvu d-dominju fil-mira u nsaħħnu l-cache. L-istanza Unbound tservi risponsi cached għat-tiftix sussegwenti fi ħdan l-iskennja, li tnaqqas l-overhead tad-DNS għal kull dominju għal taħt il-millisekonda.

Sigurtà SSRF fuq skala

Kull talba interċettata mill-iskanner tiġi ċċekkjata kontra sett ta' regoli ta' sigurtà qabel ma tithalla tgħaddi. Talbiet lejn firxiet ta' IP privati (RFC 1918, RFC 4193, link-local, loopback) jiġu mblokkati. Dan jipprevjeni sit fil-mira malizzjuż milli juża l-iskanner bħala vettur SSRF biex jisondja netwerks interni.

L-isfida fuq skala kienet li tiddistingwi blokki SSRF ġenwini minn saturazzjoni tas-semaphore. Meta l-15-il slot tas-semaphore kollha jkunu f'użu u skennja ma tkunx tista' takkwista slot, it-timeout riżultanti jidher superfiċjalment simili għal talba mblukkijata għal raġunijiet ta' sigurtà. Żidna kategorizzazzjoni espliċita tal-iżbalji biex niddistingwu "imblukkijata għax il-mira rriżolviet għal IP privat" minn "imblukkijata għax l-iskanner huwa f'kapaċità massima." Dan kien essenzjali għall-monitoraġġ operazzjonali u għall-klassifika preċiża tal-fallimenti tal-iskenjiet.

Sfida 4: Detezzjoni tal-Evażjoni tal-Bots

Matul l-istudju, identifikajna 137 sit web li jidhru li deliberatament jaħbu l-banner tal-kunsens tagħhom minn skenners awtomatizzati. Il-banner jintwera lil-viżitaturi umani iżda jiġi soppress meta s-sit jiddettekta karatteristiċi ta' browsing awtomatizzat.

L-aktar mekkaniżmu komuni li identifikajna jinvolvi l-għażla ta' konfigurazzjoni `isAcceptAllForBots` tal-plugin WordPress RCB (Real Cookie Banner). Meta attivata, din is-setting tiddettekta browsers awtomatizzati (permezz ta' `navigator.webdriver`, ewristika ta' user-agent, jew sinjali ta' mġiba) u jew taċċetta l-kunsens f'isimhom awtomatikament jew taħbi l-banner kompletament. L-intenzjoni, kif iddokumentata mill-plugin, hija li tipprevjeni viżitaturi awtomatizzati milli jingħataw djalogu tal-kunsens li ma jistgħux jinteraġixxu miegħu b'mod sinifikanti. L-effett huwa li skenners ta' konformità -- u awdituri regolatorji li jużaw għodod awtomatizzati -- jaraw sit li jidher li m'għandux mekkaniżmu tal-kunsens, meta l-viżitaturi umani jaraw banner tal-kunsens sħiħ.

Din hija problema ta' trasparenza. Jekk il-mekkaniżmu tal-kunsens ta' sit web huwa viżibbli biss għall-viżitaturi umani, ma jistax jiġi vverifikat fuq skala. Nimmarkjaw dawn is-siti separatament fir-riżultati tagħna għax is-sejba hija kwalitattivament differenti minn "l-ebda banner iddetettat." Is-sit għandu banner; qed jagħżel li ma jurihilniex.

Niddetektaw l-evażjoni tal-bots permezz ta' kombinazzjoni ta' sinjali: il-preżenza ta' konfigurazzjoni magħrufa tad-detezzjoni tal-bots fis-settings tas-CMP (aċċessibbli permezz ta' ispezzjoni JavaScript), diskrepanzi bejn dak li juri d-DOM u dak li tirrapporta l-API tas-CMP, u f'xi każijiet billi nqabblu r-riżultati tal-iskenjiet awtomatizzati ma' verifika manwali.

Iċ-ċifra ta' 137 hija ċertament sottostima. Nistgħu biss niddetektaw l-evażjoni tal-bots meta nkunu nistgħu nidentifikaw il-mekkaniżmu. Siti li jużaw detezzjoni tal-bots aktar sofistikata jew personalizzata jistgħu b'suċċess jevitaw kemm l-iskanner tagħna kif ukoll id-detezzjoni tal-evażjoni tagħna.

Sfida 5: Identifikazzjoni Ħażina tas-CMP

Sit jista' jagħbel diversi scripts li jidhru bħal pjattaformi ta' ġestjoni tal-kunsens. PiwikPRO tinkludi komponent CMP iżda hija primarjament suite ta' analitika. Xi siti WordPress jagħblu Complianz flimkien ma' plugin separat ta' analitika li għandu karatteristiċi simili għal CMP. Siti ta' intrapriżi jista' jkollhom fdalijiet ta' CMP preċedenti għadhom jagħblu flimkien ma' dik attwali.

Detezzjoni naiva -- "jekk naraw l-script, hija s-CMP" -- tipproduċi identifikazzjonijiet foloz li kaskadaw f'interazzjoni ħażina mal-banner. Jekk l-iskanner jidentifika PiwikPRO bħala s-CMP u jipprova juża s-selectors tal-banner ta' PiwikPRO, jista' jitlef il-banner attwali ta' tarteaucitron li tikkontrolla l-kunsens fuq is-sit.

L-approċċ tagħna bbażat fuq il-kunfidenza jindirizza dan billi jikklassifika l-kandidati CMP. Meta diversi CMPs potenzjali jiġu ddetettat:

1. Niċċekkjaw liema għandha banner viżibbli fid-DOM (script preżenti iżda l-ebda banner jfisser probabbilment inattiva jew użu mhux ta' CMP).

2. Niċċekkjaw liema tesponi API CMP attiva (eż., `__tcfapi` funzjonanti jew ekwivalenti).

3. Nippreferu s-CMP li s-selectors verifikati tagħha jaqblu ma' elementi DOM viżibbli fuq dik li hija biss iddetettat permezz ta' URL tal-script.

Din l-ewristika mhijiex perfetta, iżda riżolviet l-aktar każijiet komuni ta' identifikazzjoni ħażina li ltqajna magħhom matul l-iżvilupp u l-ittestjar.

Limitazzjonijiet

L-ebda skanner awtomatizzat ma jirrepplika perfettament kull esperjenza ta' browsing uman. Dawn huma l-limitazzjonijiet magħrufa:

Banners dipendenti mill-GeoIP. Xi CMPs, notevolment CookieYes, iservu esperjenzi differenti tal-kunsens ibbażati fuq il-ġeolokazzjoni tal-IP tal-viżitatur. L-iskenjiet tagħna joriġinaw minn postijiet speċifiċi tan-netwerk fl-Ewropa. Sit li juri banner tal-kunsens lill-viżitaturi minn Franza iżda mhux lill-viżitaturi minn barra l-UE se juri riżultati differenti skont l-oriġini tal-iskennja. Bħalissa ma niskenjawx kull sit minn kull pajjiż tal-UE. Shadow DOM magħluq. Xi CMPs jirrendjaw il-banner tagħhom ġo shadow DOM magħluq, li huwa inaċċessibbli għal queries standard tad-DOM permezz ta' `document.querySelector`. Is-CMP ta' Transcend tuża dan l-approċċ. L-iskanner tagħna jista' jiddettekta l-element shadow host iżda ma jistax jispezzjona l-kontenuti tiegħu biex isib il-buttunijet ta' aċċettazzjoni/rifjut. Dawn is-siti tipikament jispiċċaw bħala mhux konklużivi fir-riżultati tagħna. Ismijiet ta' klassijiet dinamiċi u offuskazzjoni. Xi CMPs, notevolment Admiral, jużaw ismijiet ta' klassijiet iġġenerati dinamikament li jinbidlu fuq kull page load. Id-detezzjoni bbażata fuq selectors tifxel għal dawn għax is-selectors mhumiex stabbli matul iż-żjarat. Naqgħu lura għal ewristika ġenerika, iżda l-kunfidenza hija aktar baxxa. Single-page applications. SPAs li jimmaniġġjaw l-istat tal-kunsens kompletament f'JavaScript fuq in-naħa tal-klijent u jagħblu l-mekkaniżmu tal-kunsens wara bidliet ta' route inizjali (aktar milli fuq it-tagħbija inizjali tal-paġna) huma aktar diffiċli biex jiġu evalwati. L-iskanner tagħna jinnaviga għall-URL u jistenna li l-paġna tistabbilixxi ruħha, iżda ma jissimulax navigazzjoni fi ħdan l-SPA. Banner tal-kunsens li jidher biss wara li l-utent jinnaviga fi ħdan l-SPA jista' jintilef. Kopertura lingwistika. Id-detezzjoni tal-buttuna tar-rifjut tagħna tuża tqabbil tat-test matul sett ta' lingwi appoġġjati, iżda ma nkoprunx kull lingwa tal-UE ndaqs. Banner bil-Malti jew bl-Estonjan jista' jkollhom tikketti tal-buttuna tar-rifjut li t-tqabbil tat-test tagħna ma jagħrafx, li jwassal għal nuqqas fit-testjar tal-flussi tar-rifjut (għalkemm il-banner innifsu xorta jista' jiġi ddetektat mill-ewristika strutturali). Każijiet estremi ta' timing. Script li jispara 30 sekonda wara t-tagħbija tal-paġna se jintilef minn skennja li tistenna 15-il sekonda għal netwerk idle. Nużaw timeouts ġenerużi, iżda d-denb twil tal-imġiba asinkrona huwa inerentement diffiċli biex jinqabad kompletament.

Dawn il-limitazzjonijiet jikkontribwixxu għar-rata tagħna ta' 14.9% mhux konklużivi.

L-Infrastruttura

L-infrastruttura tal-iskenjar tal-produzzjoni tikkonsisti fi:

  • Magna tal-iskanner: Applikazzjoni Go li tuża chromedp bħala l-klijent CDP għall-awtomazzjoni ta' Chromium. Go ntgħażlet għall-mudell ta' konkowrenza tagħha (goroutines u channels jimmappjaw b'mod naturali fuq l-orkestrazjoni ta' skenjiet paralleli), il-karatteristiċi tal-prestazzjoni tagħha, u s-sempliċità tad-deployment tagħha (binary statiku wieħed).
  • Runtime tal-browser: Headless Chromium iħaddem għal kull skennja permezz ta' CDP. Kull skennja tikseb proċess tal-browser ġdid b'żero stat kondiviż.
  • Kju: Kju ta' xogħol appoġġjat minn Redis li jiddistribwixxi URLs lill-workers tal-iskanner. Redis jimmaniġġja d-distribuzzjoni tax-xogħlijiet, it-traċċar tal-progress, u l-limitazzjoni tar-rata.
  • Database: PostgreSQL għal riżultati durabbli tal-iskenjiet, sejbiet, metadata tal-evidenza, u d-data strutturata kollha. Iskenjiet, sejbiet, cookies, talbiet, u outputs tal-analiżi kollha jiġu maħżuna relazzjonalment.
  • Cache DNS: Resolver Unbound lokali li jipprovdi tiftix DNS cached u riżoluzzjoni sigura kontra SSRF.
  • Ħażna tal-evidenza: Screenshots, fajls HAR, u rapporti PDF jiġu maħżuna bħala artefatti durabbli marbuta mar-rekords tal-iskenjiet.

Għall-istudju ta' 97,304 sit, ipproċessajna 114,748 URL kandidat (97,304 tlestew b'suċċess) f'madwar 2.5 jiem billi użajna 3 istanzi ta' servers li jħaddmu workers tal-iskanner b'mod parallelu. Kull server ħaddem diversi proċessi ta' workers b'15-il slot ta' skenjiet simultanji kull wieħed. It-throughput massimu kien madwar 25-30 skennja lesta kull minuta għal kull server.

L-ostaklu primarju ma kienx is-CPU jew il-memorja iżda n-netwerk: kull skennja tiġġenera mijiet ta' talbiet li joħorġu (lejn is-sit fil-mira u r-riżorsi ta' partijiet terzi tiegħu), u l-bandwidth aggregat u l-għadd ta' konnessjonijiet matul iskenjiet simultanji kollha ssaturaw il-kapaċità tan-netwerk disponibbli qabel ma riżorsi oħra ġew eżawriti.

Sfidi Miftuħa u Xogħol Futur

Diversi problemi jibqgħu mhux solvuti jew parzjalment solvuti:

Lokalizzazzjoni tal-banner tal-kunsens. It-tqabbil tat-test tagħna jkopri l-lingwi ewlenin tal-UE iżda huwa inkomplet għal komunitajiet lingwistiċi iżgħar. Li tespandi l-kopertura teħtieġ mhux biss iż-żieda ta' traduzzjonijiet iżda l-validazzjoni li s-selectors u l-mudelli ta' interazzjoni jaħdmu korrettament ma' verżjonijiet lokalizzati tas-CMP. Monitoraġġ lonġitudinali. L-arkitettura attwali tagħna hija ottimizzata għal iskenjar fi punt wieħed fiż-żmien. Id-detezzjoni ta' bidliet fl-imġiba tal-kunsens maż-żmien -- is-sit tejjeb wara l-infurzar? Aġġornament tas-CMP sewwa klassi ta' fallimenti tal-flussi tar-rifjut? -- teħtieġ iskenjiet ripetuti b'analiżi differenzjali, li hija arkitetturalment differenti minn valutazzjoni one-shot. Benchmarking tal-konformità tas-CMP. Għandna d-data biex nevalwaw ir-rati ta' konformità għal kull CMP (Cookiebot hija assoċjata ma' konformità aħjar minn OneTrust?), iżda li tifired il-kwalità tas-CMP mill-kwalità tal-konfigurazzjoni tal-operatur tas-sit hija metodoloġikament kumplessa. CMP li aktar spiss tiġi użata minn intrapriżi kbar b'timijiet ta' privatezza ddedikati se tidher aħjar fl-aggregat anke jekk l-għodda nnifisha mhijiex aktar konformi. Verifika tal-istat tal-kunsens f'ħin reali. L-iskanner attwali jopera f'mod batch. L-integrazzjoni tal-verifika tal-kunsens f'pipelines CI/CD jew monitoraġġ f'ħin reali teħtieġ mod ta' skenjar aktar malajr u ħafif li jissagrifika xi fond tal-evidenza għall-veloċità. Qegħdin nesploraw dan.

L-API

L-istess magna tal-iskenjar deskritta f'dan l-artiklu hija disponibbli permezz tal-API pubbliku ta' GDPR Monitor. Tista' tissottometti talbiet ta' skenjar b'mod programmatiku, tistaqsi għar-riżultati, u tirkupra sejbiet strutturati u artefatti tal-evidenza. L-API tirritorna l-istess data li turi l-UI tagħna: snapshots ta' qabel il-kunsens, inventarji tal-cookies, riżultati tad-detezzjoni tas-CMP, riżultati tal-flussi tar-rifjut, skors tar-riskju, u ktajjen sħaħ ta' evidenza.

Jekk qed tibni għodod ta' konformità, tintegra kontrolli tal-privatezza f'pipelines CI/CD, twettaq ir-riċerka tiegħek stess, jew tibni monitoraġġ fi programm ta' privatezza, l-API tipprovdi aċċess għall-analiżi tal-kunsens mġibi mingħajr il-ħtieġa li tibni u żżomm l-infrastruttura tiegħek stess tal-awtomazzjoni ta' Chromium.


Ipprova int stess. Id-dokumentazzjoni tal-API hija disponibbli fuq gdprprivacymonitor.eu/developers/api. Issottometti URL waħdieni jew integra monitoraġġ awtomatizzat tal-privatezza fil-workflow tiegħek.

Iċċekkja l-websajt tiegħek

Mexxi skan tal-konformità tal-GDPR b'xejn — l-ebda reġistrazzjoni meħtieġa.

Skan il-websajt tiegħek b'xejn