Firefox-udvidelse
Privacy Monitor
Firefox-udvidelse · version 1.3.0 · observe-only privacy-auditor. Den registrerer og forklarer. Den blokerer ikke cookies, aflyser ikke requests, omskriver ikke sider og sender ikke rapporter nogen andre steder hen.
Hvad udvidelsen er til
Privacy Monitor svarer på ét spørgsmål: hvad forsøgte dette site at gemme, kontakte, indlæse eller spore om mig? Hver overvåget fane får en live-rapport. Toolbar-badget viser et tal farvet efter alvor: kendte trackere og fingerprinting med høj tillid i rødt, tredjepartscookies i gult, øvrige tredjeparts-requests i orange.
- Udvidelsesversion
- 1.3.0
- Minimum Firefox
- 140+
- Maks. gemte besøg
- 80
- Besøgsopbevaring
- 30 dage
Auto monitor er slået til som standard og registrerer hver HTTP(S)-fane, mens du surfer. Slår du den fra, registreres intet, før du klikker Scan this site i popuppen eller sidebaren. Det snapshotter cookies og storage for den aktuelle fane og holder øje, indtil fanen lukkes.
- Observe-only: ingen blokering, omskrivning eller fjernrapportering
- Live-rapport pr. fane plus en gemt besøgshistorik på denne enhed
- Toolbar-badge farvet efter det stærkeste signal på siden
- Scan this site, når auto monitor er slået fra
Hvad den observerer
To uafhængige collectorer føder én background-observer. Netværks- og cookie-events kommer fra Firefox-API’er. Storage- og fingerprinting-events kommer fra content scripts, der injiceres ved document_start i hver HTTP(S)-frame.
| Signal | Hvad der registreres | Hvorfor det betyder noget |
|---|---|---|
| Cookies | Oprettet, opdateret, sendt eller allerede til stede. First vs third party. Partitioneret vs upartitioneret. Udløb. | Upartitionerede tredjepartscookies kan følge dig på tværs af sites. |
| Tredjeparts-requests | Hosts kontaktet fra siden. Scripts, billeder, XHR/fetch, iframes, websockets, beacons, pixels. | Sådan kører de fleste trackere, annoncer og analytics i praksis. |
| Storage | localStorage-, sessionStorage- og IndexedDB-nøgler, når de skrives, fjernes eller allerede findes. | Sites gemmer ofte visitor-ID’er her, når cookies er begrænset. |
| Fingerprinting-API’er | Canvas, WebGL, Audio, WebRTC, plugins, fonte, battery, device enumeration. Tilskrives det kaldende script, når stacken tillader det. | API’erne kan bygge et stabilt device-fingerprint uden cookies. |
| Click IDs | Annonceparametre på sidens URL (gclid, fbclid, utm_* og lignende). | Viser, at besøget kom fra en betalt eller sporet kampagne. |
| Kendte trackere | Hosts matchet mod Disconnect Tracking Protection plus en kort extras-liste. | Skiller advertising/analytics fra CDN’er og samme-virksomheds-infrastruktur. |
| CNAME-cloaking | First-party-subdomæner, hvis DNS-CNAME peger på en tracker. | En tracker kan skjule sig bag et subdomæne, der ser first-party ud. |
Sidebaren følger den aktive fane med samme UI som popuppen, så rapporten kan stå åben, mens du klikker rundt på et site.
Hvordan data bevæger sig
Website-fanen taler med page-hook.js. Firefox-netværks-API’er og bridge.js føder begge background.js, som skriver den live-rapport, popup, sidebar og fuld rapport læser fra storage.local.
webRequest ser requests uden at blokere. Tredjeparts-hosts gemmes; first-party-hosts springes over, medmindre DNS viser en CNAME til en tracker. Request- og response-headers Cookie / Set-Cookie parses. cookies.onChanged og et snapshot af cookie-jar ved navigation fylder cookies, som headers missede. Partitionering tages fra Set-Cookie Partitioned og fra Firefox partitionKey.
Kilde: udvidelsens arkitektur i manifest.json, background/background.js, content/page-hook.js og content/bridge.js.
- Netværk og cookies fra Firefox-API’er (observer, aldrig blokér)
- Storage og fingerprinting fra document_start content scripts
- Én background-observer ejer rapporten og lokale snapshots
Sådan mærkes et domæne
Opslag er suffix-baseret, så pixel.facebook.com matcher facebook.com. Tracker-extras tjekkes før Disconnect, så consent-managers og bot-defense-CDN’er kan mærkes countAsTracker: false.
| Regel | Resultat |
|---|---|
| Samme registrerbare domæne som siden | First-party. Ikke en tracker. |
| Samme company map (Google, Meta, LinkedIn, …) | Egen infrastruktur. Ikke en tracker. |
| Disconnect Advertising / Analytics / Social | Kendt tracker. Tælles og fremhæves. |
| Disconnect Consent eller Content, eller extras med countAsTracker false | Mærket (Consent, CDN, bot defense) men tælles ikke som tracker. |
| Kendt CDN (jsDelivr, CloudFront, Google Fonts, …) | Library CDN / content delivery. |
| Beacon, ping eller 1x1 / /pixel / /collect-URL | Tracking-beacon, også hvis hosten er ukendt. |
| CNAME for en first-party-host peger på en tracker | Cloaked tracker. Formål inkluderer (CNAME). |
Cookienavne klassificeres også med regex (_ga, _fbp, session-id’er, theme/lang). Storage-nøgler, der ligner visitor-ID’er, flagges som mistænkelige.
Fingerprinting og tracker-listen
At bruge canvas eller WebGL én gang er ikke bevis for fingerprinting. Tilliden stiger, når et kendt tracker-script kalder en high-signal-API, når flere signaler vises på en tredjeparts-host, eller når kalderen ikke er sidens egen virksomhed.
Hovedlisten er Disconnect Tracking Protection (ca. 4.400 domæner) i lib/disconnect-list.js. En kort extras-fil dækker huller som googletagmanager.com, app-measurement.com og HUMAN / DataDome bot-defense-hosts.
- High-signal: Canvas.toDataURL, toBlob, getImageData, WebGL.readPixels, OfflineAudioContext, RTCPeerConnection
- Medium: WebGL.getParameter, AudioContext, plugins, fonte
- Low: battery, enumerateDevices, voices
- Lav tillid betyder, at API’en kørte - ikke at du blev fingerprinted
Overflader
Samme rapport findes som kompakt popup, vedvarende Firefox-sidebar og en bredere fuld rapport med besøgshistorik. Indstillinger holdes bevidst små: auto monitor, åbn de andre overflader, og slet gemte besøg.
| Overflade | Rolle |
|---|---|
| Toolbar-popup | Live-opsummering, konklusion, filtrerbar tabel, Scan this site når auto monitor er slået fra, fuld rapport, indstillinger, kopiér JSON. |
| Firefox-sidebar | Samme UI som popuppen, altid tilgængelig fra Firefox’ sidebar-menu. Følger den aktive fane. |
| Fuld rapport | Bredere tabel med Detail-kolonne, søgning og en venstreliste over gemte besøg grupperet efter site. |
| Indstillinger | Auto monitor til/fra, åbn sidebar, åbn rapporter, slet gemte besøgsdata. Forklarer loftet på 80 besøg / 30 dage. |
Hvad der gemmes, og hvor længe
Intet forlader enheden. Besøgssnapshots ligger i browser.storage.local under visits. Igangværende fane-rapporter bruger session storage, når Firefox tilbyder det. Indstillinger er ét autoMonitor-flag.
| Emne | Loft | Typisk størrelse |
|---|---|---|
| Gemte besøg | 80 besøg eller 30 dage, hvad der kommer først | 1-2 MB typisk |
| Rækker pr. besøg | 250 | 10-30 KB typisk |
| Worst-case historik | 80 tunge sider | ca. 4-8 MB |
| Firefox local storage-kvote | ca. 10 MB uden unlimitedStorage | der er stadig luft |
Størrelsen er estimeret fra JSON-snapshots af cookies, request-hosts, storage-nøgler og API-navne. Side-HTML, skærmbilleder og cookie-værdier gemmes ikke.
- Kun lokalt: ingen sync og ingen remote backup
- Ældre besøg slettes automatisk
- Slet gemte besøgsdata rydder historikken fra Indstillinger
Tilladelser
Hver tilladelse bruges til at observere, ikke til at ændre siden. Udvidelsen injicerer aldrig annoncer og poster aldrig data ud.
| Tilladelse | Bruges til | Bruges ikke til |
|---|---|---|
| cookies | Læse navne, domæner, udløb, partitionstilstand | Ændre eller slette cookies |
| webRequest | Se tredjeparts-requests og Set-Cookie / Cookie-headers | Blokere eller ændre requests |
| webNavigation | Vide, hvornår en fane starter en ny side | Omdirigere navigation |
| tabs | Identificere den aktive fane og åbne rapportsiden | Lukke eller omskrive faner |
| storage | Gemme indstillinger og besøgshistorik på denne enhed | Sync eller remote backup |
| dns | Resolve CNAME for at finde cloaked trackere | Ændre DNS |
| <all_urls> | Observere ethvert http/https-site, du åbner | Injicere annoncer eller poste data ud |
Grænser, forbehold og hvordan den indlæses
Den kan overse noget. Faner, der allerede var åbne før installation, skal reloades, så content scripts kan hæfte. Service workers og visse sandboxed frames kører måske ikke page-hook. Script-attribution via stack-trace er best-effort. Company map’et vedligeholdes i hånden og dækker ikke alle brands.
Den kan over-rapportere. Fingerprinting-API’er bruges også til spil, video og fonte. Google Tag Manager står som analytics, fordi den ofte er loader for trackere, også når containeren selv er first-party.
Ikke en ad blocker. Privacy Monitor får ikke sites til at indlæse færre trackere. Brug den til at se, hvad der skete. Kombinér med Firefox Enhanced Tracking Protection eller en blocker, hvis requests skal stoppes.
I Firefox åbn about:debugging#/runtime/this-firefox, vælg Load Temporary Add-on, og peg på manifest.json. Reload allerede åbne faner. Gecko-id’et er privacy-monitor@web-analyse.local. Midlertidige add-ons unloades, når Firefox genstarter, indtil du indlæser dem igen.
- Reload eksisterende faner efter installation
- Lav tillid er “denne API kørte”, ikke “du blev fingerprinted”
- Midlertidig add-on, indtil den signeres og installeres permanent