Table of Contents
Provenance: privacy:server_side_tracking
Working notes behind server_side_tracking — every query with its population and denominator, the scripts and their unedited output, the folds and their residue, the quotes checked against the source papers, the external sources and how each was verified, what could not be established, and the judgement calls. Corpus-level caveats that apply to every page on this site are on corpus and are not restated here.
1. What this page is backing
| Item | Value |
|---|---|
| Content page | server_side_tracking — new page, created 2026-08-21 |
| Corpus report script | scripts/report_server_side_tracking.mjs — two passes: structured extraction, then full-text probe |
| Artefact audit scripts | scripts/sst_guard_templates.mjs (recovers and exercises the shipped detection regexes), scripts/sst_guard_replay.mjs (replays the shipped extractor over the authors' published rows), scripts/sst_guard_datacheck.mjs (cross-checks the preprint's headline figures against its own released data files) |
| Quote verification | scripts/sst_quotecheck.mjs — 25 quotes and literal figures against three renderings of each source paper |
| External-fact re-check | scripts/sst_external_checks.sh |
| Stale-number guard | scripts/sst_number_guard.mjs — page-specific, because the shared check_page_numbers.mjs has a site-wide ALLOW map and adding this page's external figures to it would weaken every other page's check |
| Bibliography additions | scripts/bib_additions_sst.bib — 8 entries; a 9th ([1Bekos, Paschalis; Papadopoulos, Panagiotis; Kourtellis, Nicolas; Polychronakis, Michalis (2025): "PIIxel Leaks: Passive Identification of Personally Identifiable Information Leakage through Meta Pixel", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)]) was added during review. DOI-scanned before each append, so no duplicate key and no second entry for a paper already in the file |
| Data | data/extract/run1/extractions.jsonl — 5,859 papers with a structured record; data/fulltext/*/*/*/paper.cols.txt — 5,869 papers with readable full text; 7 venues, 2010–2026 |
| External artefacts | github.com/jazlan01/sst-guard at commit 9e013d4 (2026-04-30 UTC, the only commit), cloned 2026-08-21; arxiv.org/html/2604.27497 v1 |
| Written | 2026-08-21, against the corpus as extended on 2026-08-11 (commit 8a6b843) |
Creating, not extending. sitemap.mjs reported 72 existing pages and no page in any namespace about server-side tracking. A sibling sweep of the eleven most plausible neighbours (privacy:cookies, privacy:requests, privacy:fingerprinting, privacy:javascript, privacy:consent, privacy:darkpatterns, design:website_selection, programming:crawler, practices:legal_enforcement, literature:corpus, literature:bibliography) found the topic mentioned in passing on three of them and covered on none:
| Page | What it already says | Decision |
|---|---|---|
privacy:requests | CNAME cloaking and first-party proxying named twice as things that defeat hostname matching; AdGuard's CNAME list reviewed in its list table | Left alone. The new page links to it and does not restate the filter-list material |
privacy:javascript | one clause: script URLs are “first-party-proxied or CNAME-cloaked” | Left alone |
privacy:cookies | one clause: first-party cookies can be “set by” a third-party service | Left alone |
privacy:consent | Google consent mode, which is adjacent (the gcd parameter appears in SST payloads) but a different subject | Left alone |
So this is a new page, not a broadening of a neighbour. The judgement is recorded in §9.
2. Populations and denominators
The extraction schema has no field for server-side tracking. That is the central methodological fact about this page and it forces two separate populations.
| Tag | Definition | N |
|---|---|---|
| A-all | papers with a structured extraction record | 5,859 |
| A-title | title matches /server-side tracking/i | 2 |
| A-sweep | ≥1 detection[] tuple whose phenomenon, technique, metric or prevalence matches /cname|server-?side/i | 63 |
| A-sweep ∧ tracking | of those, ≥1 matching tuple also matches /track|cookie|advertis|adblock|filter list|tag manager|analytics|pixel|fingerprint/i | 7 |
| A-sweep ∖ tracking | the residue, printed in full in §5 | 56 |
| A-legal | legal[] non-empty — the denominator for the compliance figure | 402 |
| A-crawled | crawlConfig !== null OR studyTypes contains automated-web-crawl | 1,120 |
| B-scanned | papers with a readable paper.cols.txt — the denominator for every full-text probe | 5,869 |
B-scanned (5,869) is larger than A-all (5,859) by ten papers. These are papers whose PDF was fetched and rendered but which have no extraction record. The page uses 5,869 for probe figures and 5,859 for extraction figures and never mixes them; this note exists because the two look like a typo for one another.
The corpus populations were printed rather than assumed, and match OVERVIEW.md for the 2010–2026 corpus: crawled 1,120, measuredFrom 3,908, legal 402, empirical 5,118.
2.1 Probe widths, all of them
Memory of earlier runs on this site: a narrow full-text probe returns a confident wrong number. So the probe was layered from narrow to wide and every width is published, on the page as well as here. The page's claim that the topic is quiet does not rest on the narrow probe alone: all eleven narrow hits were opened and read individually, and the two that actually detect SST are named.
| Probe | Regex | Papers | Share of 5,869 |
|---|---|---|---|
sst_term | /server[- ]?side (?:tracking|tagging)/i | 11 | 0.2% |
sgtm | /\bsGTM\b|server[- ]?side (?:google )?tag manager|server[- ]?side google analytics|\bsGA\b/i | 2 | 0.0% |
capi | /conversions? api|\bCAPI\b|events api/i | 16 | 0.3% |
capi_product | /Conversions? API/ — case-sensitive, because the product is a proper noun | 4 | 0.1% |
moved_server | the widest phrasing probe — see the script | 18 | 0.3% |
cname_cloak | /CNAME[- ]?(?:cloak\w*|based|tracking|redirection|redirect\w*|delegation)/i | 46 | 0.8% |
cname_any | /\bCNAME\b/i | 151 | 2.6% |
first_party_proxy | /reverse[- ]?prox\w+|first[- ]?party (?:prox\w+|cloak\w*)/i | 64 | 1.1% |
measurement_protocol | /measurement protocol/i | 7 | 0.1% |
tag_manager_any | /\b(?:google )?tag manager\b|\bGTM\b|gtag\.js/i | 48 | 0.8% |
2.2 The ''capi'' probe, and why it is published at two widths
The wide API probe is this page's own worked example of the rule that probe width decides the claim. It was written wide first, and widening it from the product name to the abbreviation and to “Events API” multiplies the count by four while adding nothing:
| Width | Regex | Papers |
|---|---|---|
| narrow | /Conversions? API/ | 4 |
| wide | /conversions? api|\bCAPI\b|events api/i | 16 |
All twelve wide-only papers are noise, and all twelve are printed in §4.1 under – wide-only hits –:
| Year | Venue | Why it matched |
|---|---|---|
| 2012 | TheWebConf | capi- from “social capi-talists” at a column break |
| 2016 | USENIX Sec | CAPI = Microsoft CryptoAPI |
| 2019 | NDSS | GitHub's Events API |
| 2021 | NDSS | an Android Events API |
| 2021 | USENIX Sec | an Android Events API |
| 2022 | USENIX Sec | GitHub's Events API |
| 2023 | USENIX Sec | C++ “type conversion APIs” |
| 2023 | USENIX Sec | deep-learning framework APIs |
| 2023 | USENIX Sec | a browser resource-pool Events API |
| 2024 | USENIX Sec | iOS supply-chain APIs |
| 2025 | PETS | a voice-assistant device-management API |
| 2025 | USENIX Sec | prompt-service APIs |
The narrow probe had to be made case-sensitive to reach 4. Written as /conversions? api/i it returned 5, the extra being the C++ native-extension paper's “type conversion APIs”. The product is a proper noun, so the case-sensitive form is the correct one; the correction is recorded here rather than silently applied. The content page publishes both widths and states that nothing on it rests on the wide one.
2.3 Probe false positives, named
The probes were not trusted blind. Every pre-2019 hit was opened, because a 2010 paper cannot be about an architecture Google shipped in 2020, and all three are false positives:
| Year | Venue | Paper | Why it matched |
|---|---|---|---|
| 2010 | USENIX Sec | An Analysis of Private Browsing Modes in Modern Browsers | Genuinely contains “server-side tracking” — “Bugnosis [2] is a Firefox extension that warns users about server-side tracking using web bugs”. The phrase, not the architecture |
| 2012 | TheWebConf | Understanding and Combating Link Farming in the Twitter Social Network | \bCAPI\b matched the fragment capi- of “social capi-talists”, where the trailing hyphen sits at a column boundary and therefore counts as a word boundary |
| 2016 | USENIX Sec | The Million-Key Question | CAPI meaning Microsoft's CryptoAPI |
The second of these is a cost of the column repair itself: a hyphen left at a column break creates a word boundary that \b honours. It is the reason the page names its three pre-2019 hits instead of tabulating them as if they were signal.
Whitespace is collapsed and end-of-line hyphenation joined before matching. Without that, server-\nside tracking — which is how it appears in a two-column PDF a large fraction of the time — silently fails, and the narrow probe under-reports. Files are read as latin1 so a stray byte cannot throw; every pattern is ASCII.
3. Running it
cd /workspace/artifacts/wiki # corpus: two passes, both denominators printed node scripts/report_server_side_tracking.mjs # quotes: 25 checks against paper.cols.txt / paper.txt / paper.norm.txt node scripts/sst_quotecheck.mjs # external facts, re-fetched sh scripts/sst_external_checks.sh # the SST-Guard artefact audit needs the released archives unpacked first git clone --depth 1 https://github.com/jazlan01/sst-guard.git sst/repo # commit 9e013d4 unzip -oq sst/repo/dist_chrome.zip -d /tmp/ext unzip -oq sst/repo/adblock-filtered.csv.zip -d /tmp/af node scripts/sst_guard_templates.mjs node scripts/sst_guard_replay.mjs node scripts/sst_guard_datacheck.mjs
scripts/lib.mjs resolves the dataset root, enforces that every query names its own population, and defines the sentinel set. All counts in every script are of papers, never tuples.
4. Unedited output
4.1 Corpus report
- report_server_side_tracking-output.txt
=== PASS A — corpus shape (denominator for everything in pass A) === papers with a structured extraction record: 5859 population all 5859 population crawled 1120 population measuredFrom 3908 population webCrawled 857 population legal 402 population empirical 5118 === PASS A — corpus papers whose TITLE names server-side tracking === 2024 PETS The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web 2024 PETS Client-side and Server-side Tracking on Meta: Effectiveness and Accuracy === PASS A — detection tuples of those papers (phenomenon | technique | metric | prevalence) === -- PETS 2024: The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web IP cloaking | Compared A/AAAA/CNAME organizations with visited-site organization. | share of visited websites | 996 cloaked subdomains on 767 websites (10.41%) identifier-cookie tracking | Compared cookie values across two user-specific crawls. | share of cloaked domains | 474 of 996 cloaked domains (47.59%) server-side tracking | Matched emerging cloaked trackers and shifted parameters/cookies across 2020–2022 crawls. | websites with SST | 28 of 7,367 visited websites Same-Origin Policy bypass | Identified cloaked trackers receiving IDs set by distinct third-party domains. | cloaked trackers receiving cross-origin IDs | 119 cloaked trackers and 91 distinct third-party cookie-setting domains browser-feature sharing | Searched SST request URLs, POST data, and script calls for fingerprinting features. | share of SST domains | 6 of 32 SST domains (18.75%) tracker blocking evasion | Checked shifted trackers against combined dated Disconnect lists. | shifted trackers listed by Disconnect | 40 of 69 trackers (57.97%) cookie-purpose distribution | Looked up cookie names in Cookiepedia. | classified SST cookies categorized as targeting/advertising | 35% crawlConfig: {"statefulness":"stateless","browsers":["Firefox"],"headless":"not-stated","consentAction":"no-interaction","interactionDepth":"landing-page-only","subpagesPerSite":null,"authentication":"none","languages":[],"repeatVisits":null,"evidence":{"quote":"we visit the home page of the website X and keep the page open until all content is loaded to capture all cookies stored","section":"results"}} population : [{"sourceList":"Alexa top 10,000","listVersion":"2021","n":10000,"unit":"websites","samplingMethod":"top-n","evidence":{"quote":"We used the OpenWPM platform [75] with the Firefox browser to perform three passive web measurement crawls of the Alexa top 10,000 websites [13]","section":"evaluation"}}] legal : [{"law":"GDPR","jurisdiction":"EU","whatWasAssessed":"Lawfulness, consent, transparency, and personal-data processing","foundViolations":"yes","usedOrMentioned":"used","evidence":{"quote":"Together with a legal scholar, we also assessed the compliance of SST and noted that SST infringes both the GDPR and the ePD.","section":"conclusion"}},{"law":"ePrivacy Directive","jurisdiction":"EU","whatWasAssessed":"Consent for cookies and tracking technologies","foundViolations":"yes","usedOrMentioned":"used","evidence":{"quote":"websites including SST subdomains must ask user's consent for the deposit of cookies and other tracking technologies for advertising purposes.","section":"discussion"}}] artifacts : {"links":[{"url":"https://github.com/mozilla/OpenWPM","kind":"source-code","what":"OpenWPM crawler platform","belongsToAuthors":false},{"url":"https://www.dropbox.com/scl/fo/s83a6mxo340ommat2asau/h?rlkey=svro2emp1fyv1d3pcrzwuqk75&dl=0","kind":"dataset","what":"Alexa top-10,000 websites","belongsToAuthors":false},{"url":"https://cookiepedia.co.uk/classify-cookies","kind":"other","what":"Cookie-purpose database","belongsToAuthors":false},{"url":"https://sitelookup.mcafee.com/","kind":"web-demo-or-service","what":"Website categorization service","belongsToAuthors":false},{"url":"https://disconnect.me/","kind":"other","what":"Disconnect tracker list","belongsToAuthors":false},{"url":"https://pypi.org/project/whois/","kind":"other","what":"WHOIS Python library","belongsToAuthors":false},{"url":"https://xlinux.nist.gov/dads/HTML/ratcliffObershelp.html","kind":"other","what":"Ratcliff-Obershelp algorithm","belongsToAuthors":false}],"codeUrl":null,"dataUrl":null,"availability":"none-mentioned","badge":null,"evidence":{"quote":"We used the OpenWPM platform [75] with the Firefox browser to perform three passive web measurement crawls","section":"evaluation"}} -- PETS 2024: Client-side and Server-side Tracking on Meta: Effectiveness and Accuracy Meta user-profile matching effectiveness | Measured Meta ad-campaign reach for tracker-specific remarketing audiences. | reach effectiveness | Conversions API matched 34%–51%; Meta Pixel matched 42%–61% User-matching accuracy | Compared overlap between recruiting and tracking Facebook ad campaigns. | campaign-audience overlap | Pixel accuracy was 100%; CAPI accuracy was 60%–65% Browser privacy restrictions | Compared Pixel and CAPI reach on Safari without third-party cookies. | reach effectiveness | Safari Pixel ranged from 0% to 51%; CAPI ranged from 0% to 19% Filter-list blocking | Monitored blocked network calls and cookies across endpoint configurations. | blocked requests and cookie transmission | Pixel calls were blocked; CAPI requests were unaffected VPN effects on server-side tracking | Replaced authentic participant IPs with known VPN-server IP addresses. | reach effectiveness | CAPI achieved 27% reach effectiveness with VPN-linked IP addresses User-agent spoofing | Compared CAPI events containing authentic versus randomly generated historical user agents. | reach effectiveness | Authentic and spoofed user agents each achieved 44% First-party cookie effects | Compared CAPI events with and without fbp or fbc values. | reach effectiveness and audience overlap | fbp did not improve effectiveness; fbc increased effectiveness from 20% to 23% Shared tracking endpoints | Compared isolated versus common Meta event endpoints. | matching accuracy | Pixel accuracy decreased from 100% to 81% with a common endpoint crawlConfig: null population : [{"sourceList":"Prolific","listVersion":null,"n":2400,"unit":"human-participants","samplingMethod":"convenience","evidence":{"quote":"We recruited 2400 users across four experiments performed between April and October 2023.","section":"evaluation"}},{"sourceList":"Prolific","listVersion":null,"n":725,"unit":"human-participants","samplingMethod":"convenience","evidence":{"quote":"We recruited 725 users across three experiments performed between April and October 2023.","section":"evaluation"}},{"sourceList":"Prolific","listVersion":null,"n":1350,"unit":"human-participants","samplingMethod":"convenience","evidence":{"quote":"We recruited 1350 users across four campaigns between March and October 2023.","section":"evaluation"}},{"sourceList":"Prolific","listVersion":null,"n":500,"unit":"human-participants","samplingMethod":"convenience","evidence":{"quote":"We recruited 500 users, and the experiment was performed in November 2023.","section":"evaluation"}},{"sourceList":"Prolific","listVersion":null,"n":250,"unit":"human-participants","samplingMethod":"convenience","evidence":{"quote":"We directed traffic from 250 users on Prolific.","section":"evaluation"}},{"sourceList":"Facebook advertising campaign","listVersion":null,"n":2791,"unit":"human-participants","samplingMethod":"convenience","evidence":{"quote":"A total of 2,791 users consented and took part in this experiment.","section":"methodology"}}] legal : [] artifacts : {"links":[{"url":"https://developers.facebook.com/docs/business-sdk/getting-started/","kind":"other","what":"Meta Business SDK documentation","belongsToAuthors":false},{"url":"https://prolific.com/","kind":"other","what":"Participant crowdsourcing platform","belongsToAuthors":false},{"url":"https://ipinfo.io/","kind":"web-demo-or-service","what":"IP geolocation and VPN data service","belongsToAuthors":false},{"url":"https://vpnapi.io/","kind":"web-demo-or-service","what":"VPN and proxy detection service","belongsToAuthors":false},{"url":"https://easylist.to/","kind":"other","what":"EasyList filter lists","belongsToAuthors":false},{"url":"https://www.ip2location.io/","kind":"web-demo-or-service","what":"IP geolocation API","belongsToAuthors":false},{"url":"https://www.ipqualityscore.com","kind":"web-demo-or-service","what":"IP and VPN detection service","belongsToAuthors":false}],"codeUrl":null,"dataUrl":null,"availability":"none-mentioned","badge":null,"evidence":{"quote":"This method had the lowest incidence of false negatives among the approaches we tested.","section":"methodology"}} === PASS A — detection tuples anywhere in the corpus mentioning CNAME / server-side === papers matched by the wide sweep: 63 of 5859 with a structured extraction record of which web-tracking relevant: 7 of which unrelated (the residue): 56 -- web-tracking relevant -- 2012 NDSS Ghost Domain Names: Revoked Yet Still Resolvable Resolver cache-lifetime behavior | Tracked TTL variations of the www.google.com CNAME record | distribution of resolver behavior types | over 65% stable; over 85% of failed resolvers were proxy or unstable 2021 PETS The CNAME of the Game: Large-scale Analysis of DNS-based Tracking Evasion CNAME-based tracking prevalence | Filtered same-site non-origin requests using CNAME chains and signatures. | share of websites | 9.98% of the top 10,000 websites employed at least one CNAME-based tracker. CNAME-tracking growth | Applied an iterative IP-and-signature method across monthly HTTP Archive data. | relative increase in publishers | 21% growth over 22 months, compared with −3% and −8% for comparison tracker groups. Cookie leaks in HTTP headers | Excluded tracker-set, session, short, and non-identifying cookies; traced setters. | share of sites with leaks | 95% of sites with an identified CNAME tracker had one or more cookie leaks. Insecure CNAME tracking requests | Inspected HTTP Archive request protocols and active content. | number of websites | 19 websites requested active content over HTTP; 72 sent analytics over HTTP from HTTPS pages. 2023 USENIX Cookie Crumbles: Breaking and Fixing Web Session Integrity server-side cookie-parser inconsistencies | Reflector programs plus fuzzed Cookie-header variations. | parser behaviors and vulnerabilities | - 2024 PETS The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web IP cloaking | Compared A/AAAA/CNAME organizations with visited-site organization. | share of visited websites | 996 cloaked subdomains on 767 websites (10.41%) server-side tracking | Matched emerging cloaked trackers and shifted parameters/cookies across 2020–2022 crawls. | websites with SST | 28 of 7,367 visited websites 2024 PETS Client-side and Server-side Tracking on Meta: Effectiveness and Accuracy VPN effects on server-side tracking | Replaced authentic participant IPs with known VPN-server IP addresses. | reach effectiveness | CAPI achieved 27% reach effectiveness with VPN-linked IP addresses 2024 PETS Opted Out, Yet Tracked: Are Regulations Enough to Protect Your Privacy? Server-side data sharing | Analyzed bids from advertisers not directly receiving leaked interests. | mean bid CPM relative to control | Advertisers not explicitly leaked user interests often still bid higher than control. 2022 IEEE-SP Journey to the Center of the Cookie Ecosystem: Unraveling Actors' Roles and Relationships. CNAME cloaking | Detected aliases and matched them against a tracker blocklist | domains re-attributed | - -- residue: matched "server-side"/"CNAME" but not about web tracking -- 2011 CCS WAPTEC: whitebox analysis of web applications for parameter tampering exploit construction. negative parameter tampering | Analyze server-side branches and data/control dependencies for hidden parameters | confirmed exploits | A privilege-escalation exploit in dcpportal 2012 CCS Collaborative TCP sequence number inference attack: how to crack sequence number under a second. Windows Live Messenger command injection | Server-side TCP injection using inferred sequence and ACK numbers | demonstrated command effects | Injected commands added or removed friends, changed statuses, and sent messages 2012 IMC Beyond friendship: modeling user activity graphs on social network-based gifting applications. Facebook gifting application activity | Server-side collection of anonymized sender, receiver, and timestamp records. | number of activities | iHeart 2.2 billion; iSmile 1.5 billion; Hugged 1.6 billion activities 2012 IMC Content delivery and the natural evolution of DNS: remote dns trends, performance issues and alternative solutions. CDN use by popular websites | Downloaded index pages and linked objects; inspected redirects and CNAMEs | share of top sites and pageviews | Over 70% of the top 1,000 sites and 89% of their pageviews 2014 CCS Security Analysis of the Estonian Internet Voting System. server-side vote alteration | Tainted installation ISO and counting-server malware | fraction of votes altered | 100% of votes in the demonstration 2014 IEEE-SP When HTTPS Meets CDN: A Case of Authentication in Delegated Service. DNS-CDN deployment | Probed Alexa domains for CNAME or NS chains to surveyed CDN providers. | number of DNS-CDN-enabled sites | 14,199 DNS-CDN-enabled sites; 10,721 reachable with HTTPS 2015 NDSS EKHUNTER: A Counter-Offensive Toolkit for Exploit Kit Infiltration Server-side exploit-kit vulnerabilities | Combined AC-VD, SQLI-VD, and MTS-VD static analyses | number of vulnerabilities and vulnerable kits | Over 180 vulnerabilities across 16 of 30 exploit kits 2015 IMC From .academy to .zone: An Analysis of the New TLD Land Rush. Defensive redirects | Detected CNAME, browser-level, and single-large-frame redirects | share of domains | 236,380 off-domain redirects, or 6.5% 2016 IMC Measuring the Adoption of DDoS Protection Services. DDoS protection service adoption | Counted domains referencing provider ASNs, CNAMEs, or NS records daily. | relative adoption growth | 1.24× over 1.5 years DNS traffic-diversion method | Compared DPS references in CNAME, NS, and IP-address ASN records. | share of DPS-using domains by method | CloudFlare authoritative name servers used by about 75% of CloudFlare-using domains 2016 IMC Performance Characterization of a Commercial Video Streaming Service. Client download-stack buffering | Outlier detection using first-byte delay, instantaneous throughput, and server-side TCP estimates. | share of chunks and sessions | 0.32% of chunks and 3.1% of sessions had detected download-stack buffering. 2016 WWW No Honor Among Thieves: A Large-Scale Analysis of Malicious Web Shells. Server-side homephoning | Packet-trace analysis after instrumented honeypot execution. | share of dynamic-analysis shells | 4.8% initiated connections to 34 remote IP addresses. 2018 IMC A Long Way to the Top: Significance, Structure, and Stability of Internet Top Lists. IPv6 adoption | Count routed IPv6 addresses in AAAA records and CNAME chains | share of domains IPv6-enabled | top lists had 11–13% IPv6 enablement versus 4% generally CDN prevalence | Resolve domains and match CNAMEs against CDN patterns | share of domains using CDNs | all Top 1M lists exceeded the general population by at least a factor of two 2019 CCS MalMax: Multi-Aspect Execution for Automated Dynamic Web Server Malware Analysis. PHP server-side malware | MalMax dynamic multi-path execution with PhpMalScan heuristics | detected samples | 1,485 malware samples not detected by VirusTotal 2019 IEEE-SP Does Certificate Transparency Break the Web? Measuring Adoption and Error Rate. Server-side SCT delivery | Compare SCT delivery sources in Chrome and website datasets. | share of SCTs or compliant websites using TLS extension | 47.97% of Chrome-observed SCTs came from TLS extensions; 50% of Alexa CT-compliant websites used them 2019 IEEE-SP PhishFarm: A Scalable Framework for Measuring the Effectiveness of Evasion Techniques against Browser Phishing Blacklists. cloaking effectiveness | Applied six server-side or JavaScript HTTP request filters. | reduction in blacklisting likelihood | Geolocation, device-type, and JavaScript cloaking reduced blacklisting likelihood by over 55% on average. 2019 IMC A First Look at the Crypto-Mining Malware Ecosystem: A Decade of Unrestricted Wealth. domain aliases | DNS and historical DNS resolution of extracted domains | number of CNAMEs | 215 different CNAMEs 2019 IMC No More Chasing Waterfalls: A Measurement Study of the Header Bidding Ad-Ecosystem. HB implementation facets | Inspect response parameters and browser events | share of HB websites by facet | 48% server-side, 34.7% hybrid, 17.3% client-side Ad-slot bid prices | Extract transparent prices and infer server-side prices heuristically | CPM bid price | 300x250 median cost 0.031 CPM 2019 NDSS understanding-open-ports-in-android-applications-discovery-diagnosis-and-security-assessment Android TCP/UDP open ports | On-device monitoring of /proc/net/tcp, tcp6, udp, and udp6; server-side clustering | share of monitored apps | 15.3% of 3,216 apps had TCP open ports 2019 USENIX Less is More: Quantifying the Security Benefits of Debloating Web Applications server-side code execution | XDebug dynamic code-coverage profiling during stimulated requests | covered files, functions, and lines | - 2020 IMC Analyzing Third Party Service Dependencies in Modern Web Services: Have We Learned from the Mirai-Dyn Incident? third-party CDN dependency | Rendered landing pages, extracted internal resources, queried CNAMEs, and matched CDN providers. | share of websites using CDNs | 97.6% of websites using CDNs use a third-party CDN 2020 IEEE-SP TextExerciser: Feedback-driven Text Input Exercising for Android Applications. Client- versus server-side validation | Repeat app interaction with network connections enabled and disabled. | share of hints displayed offline | 86 of 649 hints were purely client-side; 563 required server support 2020 NDSS Deceptive Previews: A Study of the Link Preview Trustworthiness in Social Platforms countermeasure bypass | Server-side and client-side redirections | successful bypasses | Twitter and LinkedIn defenses were bypassed 2020 USENIX PhishTime: Continuous Longitudinal Measurement of the Effectiveness of Anti-phishing Blacklists Server-side cloaking | Compared cloud crawler requests with mobile-IP and anonymous-VPN requests. | share of evasive websites | at least 146 of 183 websites used server-side cloaking 2020 USENIX The Ballot is Busted Before the Blockchain: A Security Analysis of Voatz, the First Internet Voting Application Used in U.S. Federal Elections vote alteration | Modified the client and analyzed server-side protocol capabilities. | - | Rooted-device and API-server attackers can alter votes. 2020 WWW Apophanies or Epiphanies? How Crawlers Impact Our Understanding of the Web. server-side blocking | Matched HTTP errors, CAPTCHAs, browser errors, geo-blocking, and IP-abuse block pages. | successful page-load fraction and block-category rates | Over 16% variation in successful page loads; over 160 sites showed blocking 2021 USENIX Blind In/On-Path Attacks and Applications to VPNs Server-side DNS hijacking | UDP port inference followed by transaction-ID brute forcing | successful injection rate | 75.3% with 15-second timeout; 48.1% with 10-second; 11.6% with 5-second 2021 USENIX Injection Attacks Reloaded: Tunnelling Malicious Payloads over DNS DNS cache poisoning | Injected CNAME records and queried for poisoned cached records. | share and count of open resolvers | 8.0% (105,854) of open resolvers were vulnerable to cache poisoning via injection payloads. 2021 USENIX Security Analysis of the Democracy Live Online Voting System Client-server data transmission | Reverse-engineered JavaScript and API calls using a compatible local server. | qualitative security and privacy analysis | Identity and ballot selections were sent to Democracy Live for server-side ballot generation. 2020 IEEE-SP Dragonblood: Analyzing the Dragonfly Handshake of WPA3 and EAP-pwd. authentication bypasses | Black-box tests of invalid scalars, invalid elements, and reflection handling | implementations affected | All tested client and server-side EAP-pwd implementations were vulnerable to the invalid-curve attack 2022 IMC ZDNS: a fast DNS toolkit for internet measurement. CAA record deployment | Querying CAA records for 93M base domains and following CNAMEs | share of NOERROR domains returning CAA records | 1.08M domains (1.69%) respond to CAA queries 2022 PETS Setting the Bar Low: Are Websites Complying With the Minimum Requirements of the CCPA? DNSMPI geofencing | Compare rendered snapshots and server responses from Boston and California. | share among 12,222 DNSMPI websites | 2,101 (17%) exhibit dynamic link visibility; 62% client-side and 38% server-side 2023 CCS Are we there yet? An Industrial Viewpoint on Provenance-based Endpoint Detection and Response Tools. server-side P-EDR memory consumption | Ran HOLMES, ProvDetector, and UNICORN on five datasets. | MB per host | None of the three systems met the <20MB/host requirement. 2023 NDSS ReScan: A Middleware Framework for Realistic and Robust Black-box Web Application Scanning server-side code coverage | Measured unique server-side lines executed using XDebug. | unique executed lines of code | Coverage improvement ranged from 3% to 935%, averaging 168%. 2023 PETS Heads in the Clouds? Measuring Universities’ Migration to Public Clouds: Implications for Privacy & Academic Freedom University cloud infrastructure adoption | Matched A, AAAA, and CNAME records to cloud-provider IPs and hostnames | share of institutions | U.S. institutions using all three major operators rose from 30.38% to 87.31% Cloud-hosted LMS | Matched CNAME targets against four LMS provider domains | share of institutions | 196 U.S. universities (75.38%) used cloud-hosted LMS in October 2022 2023 IMC Stale TLS Certificates: Investigating Precarious Third-Party Access to Valid TLS Keys. managed-TLS departure | Compared consecutive daily Cloudflare NS and CNAME records. | stale certificates and effective second-level domains | 854K stale certificates representing 695K effective second-level domains over three months. 2024 CCS Collapse Like A House of Cards: Hacking Building Automation System Through Fuzzing. BAS software and device vulnerabilities | BASE protocol-aware fuzzing with response and coverage monitoring | number of vulnerabilities discovered | 13 new vulnerabilities: 8 client-side and 5 server-side Server crashes and denial of service | Monitoring device responses and liveness after fuzzing | number of server-side vulnerabilities | 5 server-side vulnerabilities 2024 NDSS dRR: A Decentralized, Scalable, and Auditable Architecture for RPKI Repository CDN hosting of publication points | Analyzed DNS, CNAMEs, HTTPS headers, IPs, and geographic latency | share of independent PPs | 8 of 61 PPs were hosted in CDNs 2024 CCS Poster: Whether We Are Good Enough to Detect Server-Side Request Forgeries in PHP-native Applications? Server-side request forgery vulnerabilities | Static call-graph construction and SSRF-specific taint analysis | number of detected vulnerabilities | 24 SSRF vulnerabilities in 13 applications: 20 known and 4 new 2024 NDSS Understanding the Implementation and Security Implications of Protective DNS Services Dangling cloud DNS resources | Matched IPs to cloud ASNs/PTRs, tested reachability and ports, and checked CNAME registration. | affected PDNS resolvers | 7 obsolete cloud IPs affected 21 PDNSes; one seizable CNAME affected 5 DNS rewriting policy distribution | Categorized returned secure IPs, special-use IPs, CNAMEs, empty data, and error codes. | share of identified PDNSes | Secure IP rewriting used by 56.45% of PDNSes 2024 PETS A Black-Box Privacy Analysis of Messaging Service Providers' Chat Message Processing server-side message analysis | Monitored requests to unique URLs embedded in chat messages. | share of messaging services | 34% of messaging services conducted server-side URL access client-side token leakage | Scanned intercepted HTTP(S), WebSocket, and WebRTC traffic for token encodings. | share of analyzed messengers with CNAME chains | CNAME redirect chains were recognized for 60% of analyzed messengers 2024 USENIX A Mixed-Methods Study on User Experiences and Challenges of Recovery Codes for an End-to-End Encrypted Service Recovery-code dialog interactions | Opt-in server-side logging of dialog button interactions. | number of users and interactions | 32,784 opened the code popup; 7,546 copied and 1,873 printed it 2024 USENIX Atropos: Effective Fuzzing of Web Applications for Server-Side Vulnerabilities server-side PHP vulnerabilities | Eight instrumented sink-specific bug oracles with fuzzing feedback | true positives, false positives, precision, and true positive rate | Seven previously unknown vulnerabilities in real-world applications; 49 of 52 benchmark vulnerabilities in the 40-core configuration 2024 WWW Cold Start or Hot Start? Robust Slow Start in Congestion Control with A Priori Knowledge for Mobile Web Services. Application-limit state | Measured unsent server-side bytes during replayed application traffic. | share of time without application data | 14.46% of the time there was no application data waiting to be sent 2025 NDSS EvoCrawl: Exploring Web Application Code and State using Evolutionary Search server-side code coverage | Coverage instrumentation for PHP and Rails applications | lines of code covered | 59% average increase over the next-best scanner 2025 USENIX Big Help or Big Brother? Auditing Tracking, Profiling, and Personalization in Generative AI Assistants server-side response generation | Network traffic analysis identified response-generation architecture. | share of assistants | 8 out of 9 extensions operated server-side. 2025 WWW Beyond Visual Confusion: Understanding How Inconsistencies in ENS Normalization Facilitate Homoglyph Attacks. Server-side normalization behavior | Uses four to thirteen library-probing requests and latency-based remote API identification. | minimum requests required | server-side libraries identified with as few as 4 and up to 13 requests 2026 USENIX DaLens: Charting DNS Self-Amplification Threats at Large amplification primitive thresholds | Bounded binary search over controlled DNS resolution configurations | threshold for NS fetch, NS chain, CNAME chain, and DDLG | Most resolvers tolerated deep or wide configurations 2026 PETS Waterfall: A Capsule-Based Framework for Evaluating Traffic Watermarking in Anonymity Systems watermark removal | Constant 20 ms server-side pacing of buffered RTP packets. | TPR, FPR1, FPR2 | Detection converged to near-chance performance under the pacing defense. mixed-background false positives | Detectors ran over concurrent browsing, downloads, and uploads routed through Tor. | FPR1 | Server-side proxy FPR1 reached 1.28% for 0.5 s intervals among viable flows. 2026 NDSS NetRadar: Enabling Robust Carpet Bombing DDoS Detection carpet bombing DDoS | Gateway analysis of traffic and server-side features using NetRadar | packet-level Accuracy, Precision, and Recall | NetRadar achieves over 94% accuracy in all carpet bombing detection scenarios runtime feature mismatch | Randomly erasing server-side features during training and testing | F1-score and recall | F1-score over 0.9 across tested victim-server counts 2025 CCS Exploiting the Shared Storage API. network timing covert channel | Delayed worklet execution and server-side request timing | bits leaked per page | 33-bit identifiers feasible with delays of 0.36–1.82 seconds 2025 USENIX XSSky: Detecting XSS Vulnerabilities through Local Path-Persistent Fuzzing reflected server-side XSS | Static source-sink analysis followed by path-persistent fuzzing and browser-popup oracle | confirmed vulnerabilities | 60 previously unknown vulnerabilities across 20 PHP applications 2017 IEEE-SP SoK: Exploiting Network Printers. PostScript website information disclosure | Malicious PostScript files listing server-side files | share of evaluated websites | 8 of 12 websites 2025 NDSS Automatic Insecurity: Exploring Email Auto-configuration in the Wild Server-side security defects | Parsed configuration files and checked redirects, parameters, priorities, and consistency. | share of supported domains | 49,013 domains had security defects; 43,566 Type-I and 11,824 Type-II defects. 2026 PETS Dead Domains, Living Data: A Privacy Risk Analysis of Domain Lifecycle in Android Apps dangling CNAMEs | Automated dangling-resource detection during DNS analysis | share of late-renewed domains with dangling CNAMEs | 218 of 861 late-renewed domains (25.3%) 2024 IEEE-SP Where Are the Red Lines? Towards Ethical Server-Side Scans in Security and Privacy Research. Legal and ethical boundaries of server-side scanning | Semi-structured interviews using five scenario vignettes. | qualitative themes and assessments | - Operator comfort with server-side scans | Online survey using five-point Likert-scale scenario assessments. | percentage of 119 respondents | 57.9% were comfortable or somewhat comfortable with 3S generally 2021 IEEE-SP Black Widow: Blackbox Data-driven Web Scanning. server-side code coverage | Xdebug records executed PHP lines for each request | number of unique executed lines | Black Widow had the highest coverage on 9 out of 10 applications === PASS B — full-text probe: pattern definitions === sst_term /server[- ]?side (?:tracking|tagging)/i sgtm /\bsGTM\b|server[- ]?side (?:google )?tag manager|server[- ]?side google analytics|\bsGA\b/i capi /conversions? api|\bCAPI\b|events api/i capi_product /Conversions? API/ moved_server /(?:moved?|shift(?:ed|ing)?|relocat\w+|migrat\w+|rout\w+|forward\w+|proxy|proxied|proxying)[^.]{0,60}(?:to|on|onto|via|through) the server[- ]?side|server[- ]?to[- ]?server (?:tracking|reporting|communication|data shar)/i cname_cloak /CNAME[- ]?(?:cloak\w*|based|tracking|redirection|redirect\w*|delegation)/i cname_any /\bCNAME\b/i first_party_proxy /reverse[- ]?prox\w+|first[- ]?party (?:prox\w+|cloak\w*)/i measurement_protocol /measurement protocol/i tag_manager_any /\b(?:google )?tag manager\b|\bGTM\b|gtag\.js/i === PASS B — hits per probe, denominator = papers with a readable paper.cols.txt === papers scanned: 5869 sst_term 11 0.2% sgtm 2 0.0% capi 16 0.3% capi_product 4 0.1% moved_server 18 0.3% cname_cloak 46 0.8% cname_any 151 2.6% first_party_proxy 64 1.1% measurement_protocol 7 0.1% tag_manager_any 48 0.8% === PASS B — sst_term OR sgtm OR capi, by year (2026 is provisional: see literature:corpus) === 2010 1 of 118 scanned 0.8% 2011 0 of 116 scanned 0.0% 2012 1 of 151 scanned 0.7% 2013 0 of 125 scanned 0.0% 2014 0 of 165 scanned 0.0% 2015 0 of 190 scanned 0.0% 2016 1 of 182 scanned 0.5% 2017 0 of 232 scanned 0.0% 2018 0 of 254 scanned 0.0% 2019 1 of 402 scanned 0.2% 2020 1 of 402 scanned 0.2% 2021 2 of 380 scanned 0.5% 2022 3 of 546 scanned 0.5% 2023 4 of 720 scanned 0.6% 2024 3 of 701 scanned 0.4% 2025 4 of 770 scanned 0.5% 2026 4 of 415 scanned 1.0% === PASS B — unions of the probes, because the page quotes them and they are not sums === sst_term alone : 11 sst_term OR sgtm OR capi : 25 moved_server total / adds new to that union : 18 / 16 sst_term OR sgtm OR capi OR moved_server : 41 The probes overlap, so these are unions and never sums. Denominator: 5869 === PASS B — the capi probe split by width, because the wide one is mostly noise === wide /conversions? api|\bCAPI\b|events api/i : 16 papers narrow /Conversions? API/ : 4 papers -- narrow hits (the advertising product) -- 2024 PETS client-side-and-server-side-tracking-on-meta-effectiveness-and-accuracy 2026 PETS a-year-under-the-dsa-ad-transparencys-uneven-landscape 2026 PETS clicking-into-exposure-uncovering-privacy-risks-of-google-click-identifier-in-yo 2026 USENIX bridges-to-self-silent-web-to-app-tracking-on-mobile-via-localhost -- wide-only hits (the residue: GitHub/Android Events APIs, CryptoAPI, "social capi-talists") -- 2012 WWW understanding-and-combating-link-farming-in-the-twitter-social-network 2016 USENIX the-million-key-question-investigating-the-origins-of-rsa-public-keys 2019 NDSS how-bad-can-it-git-characterizing-secret-leakage-in-public-github-repositories 2021 NDSS preventing-and-detecting-state-inference-attacks-on-android 2021 USENIX understanding-malicious-cross-library-data-harvesting-on-android 2022 USENIX characterizing-the-security-of-github-ci-workflows 2023 USENIX bilingual-problems-studying-the-security-risks-incurred-by-native-extensions-in 2023 USENIX differential-testing-of-cross-deep-learning-framework-apis-revealing-inconsisten 2023 USENIX pool-party-exploiting-browser-resource-pools-for-web-tracking 2024 USENIX ihunter-hunting-privacy-violations-at-scale-in-the-software-supply-chain-on-ios 2025 PETS why-am-i-seeing-double-an-investigation-of-device-management-flaws-in-voice-assi 2025 USENIX prsa-prompt-stealing-attacks-against-real-world-prompt-services === PASS B — the sst_term papers, listed in full (this is the whole population) === 2010 USENIX an-analysis-of-private-browsing-modes-in-modern-browsers 2020 PETS inferring-tracker-advertiser-relationships-in-the-online-advertising-ecosystem-u 2022 PETS atom-ad-network-tomography 2022 PETS on-dark-patterns-and-manipulation-of-website-publishers-by-cmps 2024 PETS client-side-and-server-side-tracking-on-meta-effectiveness-and-accuracy 2024 PETS the-devil-is-in-the-details-detection-measurement-and-lawfulness-of-server-side 2025 CCS piixel-leaks-passive-identification-of-personally-identifiable-information-leaka 2025 IMC cookieguard-characterizing-and-isolating-the-first-party-cookie-jar 2026 PETS clicking-into-exposure-uncovering-privacy-risks-of-google-click-identifier-in-yo 2026 USENIX bridges-to-self-silent-web-to-app-tracking-on-mobile-via-localhost 2026 WWW tgnn-enhancing-pixel-tracking-detection-via-llm-driven-annotation-and-gat-powere === PASS B — the cname_cloak papers, listed in full (the neighbouring technique) === 2013 WWW the-anatomy-of-ldns-clusters-findings-and-implications-for-web-content-delivery 2014 IEEE-SP when-https-meets-cdn-a-case-of-authentication-in-delegated-service 2016 IMC measuring-the-adoption-of-ddos-protection-services 2017 CCS poster-x-ray-your-dns 2018 IMC dissecting-apples-meta-cdn-during-an-ios-update 2018 USENIX end-users-get-maneuvered-empirical-analysis-of-redirection-hijacking-in-content 2019 IMC a-look-at-the-ecs-behavior-of-dns-resolvers 2019 WWW pythia-a-framework-for-the-automated-analysis-of-web-hosting-environments 2020 CCS dns-cache-poisoning-attack-reloaded-revolutions-with-side-channels 2020 IMC analyzing-third-party-service-dependencies-in-modern-web-services-have-we-learne 2021 IMC trackersift-untangling-mixed-tracking-and-functional-web-resources 2021 NDSS cv-inspector-towards-automating-detection-of-adblock-circumvention 2021 PETS privacy-preference-signals-past-present-and-future 2021 PETS the-cname-of-the-game-large-scale-analysis-of-dns-based-tracking-evasion 2021 USENIX injection-attacks-reloaded-tunnelling-malicious-payloads-over-dns 2022 IEEE-SP journey-to-the-center-of-the-cookie-ecosystem-unraveling-actors-roles-and-relati 2022 IEEE-SP towards-automated-auditing-for-account-and-session-management-flaws-in-single-si 2022 IMC measuring-uid-smuggling-in-the-wild 2022 PETS on-dark-patterns-and-manipulation-of-website-publishers-by-cmps 2022 USENIX khaleesi-breaker-of-advertising-and-tracking-request-chains 2022 USENIX leaky-forms-a-study-of-email-and-password-exfiltration-before-form-submission 2022 USENIX webgraph-capturing-advertising-and-tracking-information-flows-for-robust-blockin 2022 WWW investigating-advertisers-domain-changing-behaviors-and-their-impacts-on-ad-bloc 2022 WWW measuring-the-privacy-vs-compatibility-trade-off-in-preventing-third-party-state 2023 CCS cookiegraph-understanding-and-detecting-first-party-tracking-cookies 2023 CCS read-between-the-lines-detecting-tracking-javascript-with-bytecode-classificatio 2023 IMC stale-tls-certificates-investigating-precarious-third-party-access-to-valid-tls 2023 NDSS navigating-murky-waters-automated-browser-feature-testing-for-uncovering-tracking-vectors 2023 USENIX defining-broken-user-experiences-and-remediation-tactics-when-ad-blocking-or-tra 2024 CCS blocking-tracking-javascript-at-the-function-granularity 2024 IMC of-choices-and-control-a-comparative-analysis-of-government-hosting 2024 PETS a-black-box-privacy-analysis-of-messaging-service-providers-chat-message-process 2024 PETS opted-out-yet-tracked-are-regulations-enough-to-protect-your-privacy 2024 PETS the-devil-is-in-the-details-detection-measurement-and-lawfulness-of-server-side 2024 USENIX purl-safe-and-effective-sanitization-of-link-decoration 2025 CCS byte-by-byte-unmasking-browser-fingerprinting-at-the-function-level-using-v8-byt 2025 CCS piixel-leaks-passive-identification-of-personally-identifiable-information-leaka 2025 IEEE-SP only-as-strong-as-the-weakest-link-on-the-security-of-brokered-single-sign-on-on 2025 IMC canvassing-the-fingerprinters-characterizing-canvas-fingerprinting-use-across-th 2025 IMC cookieguard-characterizing-and-isolating-the-first-party-cookie-jar 2025 PETS beyond-the-request-harnessing-http-response-headers-for-cross-browser-web-tracke 2025 PETS tracking-without-borders-studying-the-role-of-webviews-in-bridging-mobile-and-we 2026 NDSS crack-in-the-armor-underlying-infrastructure-threats-to-rpki-publication-point-reachability 2026 PETS clicking-into-exposure-uncovering-privacy-risks-of-google-click-identifier-in-yo 2026 PETS cryptographically-secured-domain-validation 2026 WWW tracking-the-stray-sheep-understanding-dns-response-manipulation-in-the-wild === PASS B — cname_cloak by year === 2010 0 of 118 2011 0 of 116 2012 0 of 151 2013 1 of 125 2014 1 of 165 2015 0 of 190 2016 1 of 182 2017 1 of 232 2018 2 of 254 2019 2 of 402 2020 2 of 402 2021 5 of 380 2022 9 of 546 2023 5 of 720 2024 6 of 701 2025 7 of 770 2026 4 of 415 === PASS B — residue: probe hits that are NOT about web tracking === cname_any minus cname_cloak is printed here so the part this page does not classify stays visible. papers: 105 2010 IMC comparing-dns-resolvers-in-the-wild 2010 IMC improving-content-delivery-using-provider-aided-distance-information 2010 IMC netalyzr-illuminating-the-edge-network 2010 IMC youtube-traffic-dynamics-and-its-interplay-with-a-tier-1-isp-an-isp-perspective 2011 IEEE-SP click-trajectories-end-to-end-analysis-of-the-spam-value-chain 2011 IMC web-content-cartography 2012 IMC content-delivery-and-the-natural-evolution-of-dns-remote-dns-trends-performance 2012 NDSS ghost-domain-names-revoked-yet-still-resolvable 2013 NDSS the-core-of-the-matter-analyzing-malicious-traffic-in-cellular-carriers 2013 USENIX practical-comprehensive-bounds-on-surreptitious-communication-over-dns 2014 CCS poster-blind-separation-of-benign-and-malicious-events-to-enable-accurate-malwar 2014 IMC dnssec-and-its-potential-for-ddos-attacks-a-comprehensive-measurement-study 2014 USENIX brahmastra-driving-apps-to-test-the-security-of-third-party-components 2014 USENIX on-the-feasibility-of-large-scale-infections-of-ios-devices 2014 USENIX the-long-taile-of-typosquatting-domain-names 2014 USENIX understanding-the-dark-side-of-domain-parking 2015 IMC from-academy-to-zone-an-analysis-of-the-new-tld-land-rush 2016 IMC zone-poisoning-the-how-and-where-of-non-secure-dns-dynamic-updates 2017 IMC millions-of-targets-under-attack-a-macroscopic-characterization-of-the-dos-ecosy 2017 USENIX global-measurement-of-dns-manipulation 2017 WWW who-controls-the-internet-analyzing-global-threats-using-property-graph-traversa 2018 CCS domain-validation-for-mitm-resilient-pki 2018 IMC a-long-way-to-the-top-significance-structure-and-stability-of-internet-top-lists 2018 IMC is-the-web-ready-for-ocsp-must-staple 2018 IMC ldplayer-dns-experimentation-at-scale 2018 IMC the-rise-of-certificate-transparency-and-its-implications-on-the-internet-ecosys 2018 USENIX who-is-answering-my-queries-understanding-and-characterizing-interception-of-the 2018 WWW panning-for-gold-com-understanding-the-dynamics-of-domain-dropcatching 2019 IEEE-SP phishfarm-a-scalable-framework-for-measuring-the-effectiveness-of-evasion-techni 2019 IMC a-first-look-at-the-crypto-mining-malware-ecosystem-a-decade-of-unrestricted-wea 2019 IMC cache-me-if-you-can-effects-of-dns-time-to-live 2019 IMC dns-observatory-the-big-picture-of-the-dns 2019 NDSS cracking-the-wall-of-confinement-understanding-and-analyzing-malicious-domain-take-downs 2019 NDSS dns-cache-based-user-tracking 2020 CCS zombie-awakening-stealthy-hijacking-of-active-domains-through-dns-hosting-referr 2020 IEEE-SP iclab-a-global-longitudinal-internet-censorship-measurement-platform 2020 IMC a-haystack-full-of-needles-scalable-detection-of-iot-devices-in-the-wild 2020 IMC out-of-sight-not-out-of-mind-a-user-view-on-the-criticality-of-the-submarine-cab 2020 NDSS a-practical-approach-for-taking-down-avalanche-botnets-under-real-world-constraints 2020 USENIX nxnsattack-recursive-dns-inefficiencies-and-vulnerabilities 2020 USENIX poison-over-troubled-forwarders-a-cache-poisoning-attack-targeting-dns-forwardin 2021 CCS lets-downgrade-lets-encrypt 2021 IEEE-SP cross-layer-attacks-and-how-to-use-them-for-dns-cache-poisoning-device-tracking 2021 NDSS favocado-fuzzing-the-binding-code-of-javascript-engines-using-semantically-correct-test-cases 2021 NDSS understanding-worldwide-private-information-collection-on-android 2021 USENIX accurately-measuring-global-risk-of-amplification-attacks-using-ampmap 2021 USENIX can-i-take-your-subdomain-exploring-same-site-attacks-in-the-modern-web 2021 USENIX domain-shadowing-leveraging-content-delivery-networks-for-robust-blocking-resist 2021 USENIX how-great-is-the-great-firewall-measuring-chinas-dns-censorship 2021 USENIX the-hijackers-guide-to-the-galaxy-off-path-taking-over-internet-resources 2021 WWW demystifying-illegal-mobile-gambling-apps 2022 CCS exposing-the-rat-in-the-tunnel-using-traffic-analysis-for-tor-based-malware-dete 2022 IEEE-SP measuring-and-mitigating-the-risk-of-ip-reuse-on-public-clouds 2022 IMC zdns-a-fast-dns-toolkit-for-internet-measurement 2022 NDSS auto-draft-206 2022 NDSS auto-draft-209 2022 USENIX xdri-attacks-and-how-to-enhance-resilience-of-residential-routers 2023 CCS silence-is-not-golden-disrupting-the-load-balancing-of-authoritative-dns-servers 2023 CCS tsuking-coordinating-dns-resolvers-and-queries-into-potent-dos-amplifiers 2023 CCS under-the-dark-a-systematical-study-of-stealthy-mining-pools-ab-use-in-the-wild 2023 IEEE-SP fashion-faux-pas-implicit-stylistic-fingerprints-for-bypassing-browsers-anti-fin 2023 IEEE-SP webspec-towards-machine-checked-analysis-of-browser-security-mechanisms 2023 IMC ecn-with-quic-challenges-in-the-wild 2023 IMC the-cloud-strikes-back-investigating-the-decentralization-of-ipfs 2023 PETS heads-in-the-clouds-measuring-universities-migration-to-public-clouds-implicatio 2023 USENIX nrdelegationattack-complexity-ddos-attack-on-dns-recursive-resolvers 2023 USENIX temporal-cdn-convex-lens-a-cdn-assisted-practical-pulsing-ddos-attack 2023 USENIX the-maginot-line-attacking-the-boundary-of-dns-caching-protection 2024 IEEE-SP dnsbomb-a-new-practical-and-powerful-pulsing-dos-attack-exploiting-dns-queries-a 2024 IEEE-SP practical-attacks-against-dns-reputation-systems 2024 IEEE-SP tudoor-attack-systematically-exploring-and-exploiting-logic-vulnerabilities-in-d 2024 IMC exploring-the-ecosystem-of-dns-https-resource-records-an-end-to-end-perspective 2024 IMC the-wisdom-of-the-measurement-crowd-building-the-internet-yellow-pages-a-knowled 2024 NDSS drr-a-decentralized-scalable-and-auditable-architecture-for-rpki-repository 2024 NDSS reqsminer-automated-discovery-of-cdn-forwarding-request-inconsistencies-and-dos-attacks-with-grammar-based-fuzzing 2024 NDSS understanding-the-implementation-and-security-implications-of-protective-dns-services 2024 USENIX camp-compositional-amplification-attacks-against-dns 2024 USENIX fledging-will-continue-until-privacy-improves-empirical-analysis-of-googles-priv 2024 USENIX loopy-hell-ow-infinite-traffic-loops-at-the-application-layer 2024 USENIX resolverfuzz-automated-discovery-of-dns-resolver-vulnerabilities-with-query-resp 2024 USENIX spf-beyond-the-standard-management-and-operational-challenges-in-practice-and-pr 2024 USENIX web-platform-threats-automated-detection-of-web-security-issues-with-wpt 2024 WWW discovering-and-measuring-cdns-prone-to-domain-fronting 2024 WWW investigations-of-top-level-domain-name-collisions-in-blockchain-naming-services 2024 WWW unfiltered-measuring-cloud-based-email-filtering-bypasses 2025 CCS rebirthday-attack-reviving-dns-cache-poisoning-with-the-birthday-paradox 2025 IEEE-SP predator-directed-web-application-fuzzing-for-efficient-vulnerability-validation 2025 IEEE-SP resolution-without-dissent-in-path-per-query-sanitization-to-defeat-surreptitiou 2025 IMC decoding-dnssec-errors-at-scale-an-automated-dnssec-error-resolution-framework-u 2025 IMC dive-into-the-cloud-unveiling-the-ab-usage-of-serverless-cloud-function-in-the-w 2025 IMC how-i-learned-to-stop-worrying-and-love-ipv6-measuring-the-internets-readiness-f 2025 IMC sibling-prefixes-identifying-similarities-in-ipv4-and-ipv6-prefixes 2025 IMC towards-a-non-binary-view-of-ipv6-adoption 2025 IMC unraveling-the-complexities-of-mta-sts-deployment-and-management-in-securing-ema 2025 NDSS cross-origin-web-attacks-via-http-2-server-push-and-signed-http-exchange 2025 NDSS misdirection-of-trust-demystifying-the-abuse-of-dedicated-url-shortening-service 2025 USENIX dns-flare-a-flush-reload-attack-on-dns-forwarders 2025 USENIX double-edged-shield-on-the-fingerprintability-of-customized-ad-blockers 2025 USENIX lost-in-the-mists-of-time-expirations-in-dns-footprints-of-mobile-apps 2025 USENIX your-shield-is-my-sword-a-persistent-denial-of-service-attack-via-the-reuse-of-u 2026 NDSS coordmail-exploiting-smtp-timeout-and-command-interaction-to-coordinate-email-middleware-for-convergence-amplification-attack 2026 NDSS loki-proactively-discovering-online-scams-by-mining-toxic-search-queries 2026 NDSS should-i-trust-you-rethinking-the-principle-of-zone-based-isolation-dns-bailiwick-checking 2026 PETS dead-domains-living-data-a-privacy-risk-analysis-of-domain-lifecycle-in-android 2026 USENIX dalens-charting-dns-self-amplification-threats-at-large (per-paper probe matrix written to /tmp/sst_probe.json)
4.2 The shipped SST-Guard detection templates, recovered and exercised
The preprint says its Value Templates are “shown in Table 2”. The templates that actually decide a detection are the ones compiled into the released extension, and there is no source in the repository — only dist_chrome.zip. They were therefore extracted from the minified service worker (assets/index.ts-oObg4PXQ.js, arrays Pa = cookies, zd = window, ti = network) by evaluating the declaration, which is the only faithful way to recover RegExp objects, and then exercised.
- sst_guard_templates-output.txt
==== recovered template counts cookies 5 window 10 network 23 README.md claims: 5 cookie, 10 window, 23 network ==== network templates, verbatim (feature vector index = order) [ 0] cid /(?:GA\d+\.\d+\.)?\d{8,10}\.17\d{8,11}/ [ 1] tid /G-[A-Z0-9]{10}/ [ 2] dl /https:\/\/[\^\s&#]+/ [ 3] gtm /45[A-Za-z]{1,2}[0-9]{1,2}[a-z0-9A-Z]{1,13}(v8|v9)[A-Za-z0-9]+/ [ 4] ul /([A-Za-z]{2}[-_][A-Za-z]{2})|([A-Za-z]{2})|([Ee]nglish)/ [ 5] tag_exp /[0-9]{9}(~[0-9]{9}){8,}/ [ 6] gcd /13([a-zA-Z_]{1}\d{1}){5}/ [ 7] sid /\d{10}/ [ 8] _p /\d{13}/ [ 9] pscdl /(noapi|denied)/ [10] tfd /\d{3,4}/ [11] uaa /x86/ [12] uab /64/ [13] uafvl /^(?:\[\{"brand":"Not\)A;Brand","version":"\d(?:\.\d){3}"\},\{"brand":"Chromium","version":"\d{3}\.(?:\d\.\d{3}){2}"\},\{"brand":"Go{2}gle Chrome","version":"\d{3}\.(?:\d\.\d{3}){2}"\}\]|Not\)A%\dB{2}rand(?:%\dB\d(?:\.\d){3}%\dC{2}hromium%\dB\d{3}\.(?:\d\.\d{3}){2}%\dCGo{2}gle%\d{2}Chrome%\dB|;\d(?:\.\d){3}\|Chromium;\d{3}\.(?:\d\.\d{3}){2}\|Go{2}gle%\d{2}Chrome;)\d{3}\.(?:\d\.\d{3}){2})$/ [14] uap /Linux/ [15] uapv /5\.15\.0/ [16] en /(page_view|scroll|ad_impression|user_engagement|view_item_list|view_item|scroll_depth|view_promotion|scroll_75|time_engaged|mp_pageview|ddm_standard_event|click|Scroll Depth|page_load_time|scroll_25|ads_impression|scroll_50|scroll_tracking|proctor|Newsfeed_show|Playbook Fired|scroll_90|page_scroll)/ [17] _gid /\d{8,10}\.\d{9,10}/ [18] _u /([A-Za-z]{17}|[A-Za-z]{14}|[A-Za-z]{9}|[A-Za-z]{16})~/ [19] _eu /([A-Za-z]{2,3}[A-Z]{4})|([A-Z]{2,4})|([A-Za-z]{2,3})/ [20] gcs /G[0-3-]{3}/ [21] tcfd /[0-6]{2}[0-9a-zA-Z]{2,3}[a-z]?$/ [22] ep.user_agent /^([Mm]ozilla\/\d+\.\d+\s+\([^)]+\)\s+.+)$/ ==== cookie templates, verbatim [0] pattern_1_standard_ga /^GA1\.[123](-2)?\.[0-9]{6,10}\.17[0-9]{8,13}$/ [1] pattern_2_double_prefix /^GA1\.1\.GA1\.2\.[0-9]{9,10}\.17[0-9]{11}$/ [2] pattern_3_alphanumeric /^GA1\.2\.[a-z]{3}\.[A-Za-z0-9]{11}$/ [3] pattern_4_uuid /^GA1\.1\.[a-z0-9]{8}-([0-9a-z]{4}-){3}[0-9a-z]{12}$/ [4] pattern_5_ga4 /^GS2\.1\.s17[0-9]{8}(\$[a-z][0-9]+)+$/ ==== window templates, verbatim [ 0] dataLayer /"event":\s*"gtm\.(dom|load|js|scrollDepth)"|"event":\s*"coreWebVitals"/ [ 1] gaGlobal[hid] /"hid":\s*\d+/ [ 2] gaGlobal[vid] /"vid":\s*"\d+\.17[0-9]{8}"/ [ 3] gaGlobal[fromCookie] /"from_cookie":\s*(?:true|false)/ [ 4] google_tag_data[chrome_version] /"144\.0\.7559\.97"/ [ 5] google_tag_data[brand_strings] /"(Chromium|Google Chrome|Not_A Brand)"/ [ 6] google_tag_data[architecture] /"arm"/ [ 7] google_tag_data[bitness] /"64"/ [ 8] google_tag_data[platform_version] /"26\.2\.0"/ [ 9] google_tag_data[container_id] /"G-[A-Z0-9]{5,10}"/ ==== CLAIM 1 — the `dl` template matches no ordinary URL (character-class bug) regex: /https:\/\/[\^\s&#]+/ the class is [\^\s&#] — an escaped literal caret, NOT a negation, so it matches "https://" followed only by ^, whitespace, & or #. no "https://example.com/" no "https://www.bbc.co.uk/news/article?x=1" no "https://a" MATCH "https://^" MATCH "https:// " MATCH "https://&" ==== CLAIM 2 — templates that pin the crawling machine, not Google Analytics network uap /Linux/ network uapv /5\.15\.0/ network uaa /x86/ network uab /64/ window google_tag_data[chrome_version] /"144\.0\.7559\.97"/ window google_tag_data[platform_version] /"26\.2\.0"/ window google_tag_data[architecture] /"arm"/ window google_tag_data[bitness] /"64"/ A crawl from Windows, macOS-x86, or a Chrome other than 144.0.7559.97 fails these. The preprint says the crawl ran Chrome v138 on Linux 5.15.0 / Ubuntu 22.04, so `uapv` = /5\.15\.0/ is that kernel and `uap` = /Linux/ is that OS. uapv MATCH 5.15.0 uapv no 6.8.0 uapv no 10.0.0 uapv no 15.3.1 chrome_version MATCH "144.0.7559.97" chrome_version no "138.0.7204.100" chrome_version no "151.0.1.2" ==== CLAIM 3 — the hard-coded "17" epoch prefix expires cookie pattern_1_standard_ga /^GA1\.[123](-2)?\.[0-9]{6,10}\.17[0-9]{8,13}$/ cookie pattern_2_double_prefix /^GA1\.1\.GA1\.2\.[0-9]{9,10}\.17[0-9]{11}$/ cookie pattern_5_ga4 /^GS2\.1\.s17[0-9]{8}(\$[a-z][0-9]+)+$/ window gaGlobal[vid] /"vid":\s*"\d+\.17[0-9]{8}"/ network cid /(?:GA\d+\.\d+\.)?\d{8,10}\.17\d{8,11}/ a 10-digit unix time starting "17" spans 1700000000 .. 1799999999 = 2023-11-14 .. 2027-01-15 t=1700000000 (2023-11-14) cid MATCH _ga MATCH t=1770000000 (2026-02-02) cid MATCH _ga MATCH t=1799999999 (2027-01-15) cid MATCH _ga MATCH t=1800000000 (2027-01-15) cid no _ga no t=1900000000 (2030-03-17) cid no _ga no ==== CLAIM 4 — network templates that match values with nothing to do with GA value sid _p uab tfd _eu gcs tcfd ul _gid "1700000000" HIT . . HIT . . HIT . . "1234567890" HIT . . HIT . . . . . "1700000000000" HIT HIT . HIT . . HIT . . "9999999999999" HIT HIT . HIT . . . . . "64" . . HIT . . . . . . "x86_64" . . HIT . . . . . . "404" . . . HIT . . . . . "en-US" . . . . HIT . . HIT . "de" . . . . HIT . . HIT . "AB" . . . . HIT . . HIT . "G---" . . . . . HIT . . . "1234567890.1234567890" HIT . . HIT . . . . HIT Every HIT above sets a 1 in the feature vector for a value no tracker produced. This is consistent with the preprint reporting 73.36% precision for the request-level classifier on its own training labels (Table 1, validation). ==== CLAIM 5 — the two container-id templates disagree on length network tid /G-[A-Z0-9]{10}/ window container_id /"G-[A-Z0-9]{5,10}"/ G-ABCDE tid no container_id MATCH G-ABCDE12345 tid MATCH container_id MATCH G-BD66HNTQLT tid MATCH container_id MATCH ==== CLAIM 6 — hostnames the extension hard-excludes as client-side GA t.includes("google-analytics")||t.includes("doubleclick")||t.includes("googleads")||t==="analytics.google.com"||t.endsWith(".analytics.google.com"))
4.3 Replaying the shipped extractor over the authors' published rows
- sst_guard_replay-output.txt
rows parsed from /tmp/af/adblock-filtered.csv: 40198 (skipped as malformed: 0) denominator for every percentage below: 40198 published sGA requests feature CSV=1 shipped=1 agree agree(anyparam) cid 98.6% 91.4% 92.8% 100.0% tid 89.4% 87.7% 98.3% 100.0% dl 98.4% 0.0% 1.6% 1.6% gtm 97.2% 86.9% 89.0% 91.5% ul 100.0% 92.4% 92.4% 100.0% tag_exp 17.8% 17.3% 99.5% 100.0% gcd 88.7% 86.2% 97.5% 100.0% sid 99.7% 91.4% 91.8% 100.0% _p 97.5% 91.3% 93.9% 100.0% pscdl 95.9% 93.3% 97.5% 100.0% tfd 99.7% 92.7% 93.0% 100.0% uaa 96.1% 93.3% 97.1% 100.0% uab 98.1% 93.3% 95.1% 100.0% uafvl 99.5% 0.0% 0.5% 0.5% uap 96.2% 93.3% 97.1% 100.0% uapv 95.8% 93.3% 97.5% 100.0% en 63.7% 59.3% 95.6% 100.0% _gid 99.6% 0.7% 1.1% 98.9% _u 2.9% 0.7% 97.8% 100.0% _eu 99.8% 81.5% 81.8% 99.8% gcs 0.0% 73.3% 26.7% 24.5% tcfd 0.0% 11.0% 89.0% 1.4% ep.user_agent 0.0% 2.9% 97.1% 93.7% any-parameter agreement exactly 100%: 14 of 23 features (cid, tid, ul, tag_exp, gcd, sid, _p, pscdl, tfd, uaa, uab, uap, en, _u) rounds to 100.0% but is not: 1 — uapv 99.9975% per-cell agreement, shipped extractor vs published columns: 79.3% per-cell agreement, any-parameter variant: 83.1% first disagreeing row per feature: dl CSV=1 shipped=0 https://www.cloudflare.com/go9u/ga/g/c?v=2&tid=G-SQCRB0TXZW>m=45g92e6320h2v895724479z8890325950za20kzb890325950zd890325950&_p=1772546969316&gcs=G111&gcd=13r3r uafvl CSV=1 shipped=0 https://www.cloudflare.com/go9u/ga/g/c?v=2&tid=G-SQCRB0TXZW>m=45g92e6320h2v895724479z8890325950za20kzb890325950zd890325950&_p=1772546969316&gcs=G111&gcd=13r3r _gid CSV=1 shipped=0 https://www.cloudflare.com/go9u/ga/g/c?v=2&tid=G-SQCRB0TXZW>m=45g92e6320h2v895724479z8890325950za20kzb890325950zd890325950&_p=1772546969316&gcs=G111&gcd=13r3r _eu CSV=1 shipped=0 https://www.cloudflare.com/go9u/ga/g/c?v=2&tid=G-SQCRB0TXZW>m=45g92e6320h2v895724479z8890325950za20kzb890325950zd890325950&_p=1772546969316&gcs=G111&gcd=13r3r gcs CSV=0 shipped=1 https://www.cloudflare.com/go9u/ga/g/c?v=2&tid=G-SQCRB0TXZW>m=45g92e6320h2v895724479z8890325950za20kzb890325950zd890325950&_p=1772546969316&gcs=G111&gcd=13r3r cid CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% gtm CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% ul CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% tag_exp CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% gcd CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% sid CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% _p CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% pscdl CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% tfd CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% uaa CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% uab CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% uap CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% uapv CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% en CSV=1 shipped=0 https://bttrack.com/engagement/event?input=%7B%22globalId%22%3A%22355d64c7-ddde-4e9b-af01-f935bbcfd123%22%2C%22creativeId%22%3A%22%22%2C%22placementId%22%3A%22% tcfd CSV=0 shipped=1 https://data2.statista.com/g/collect?v=2&tid=G-2T9EQH2NQC>m=45he6320v881129043za20kzb72042057zd72042057&_p=1772571702731&gcs=G111&gcu=1&gcd=13r3v3r3r5l1&npa=0 ep.user_agent CSV=0 shipped=1 https://mailchimp.com/metrics/ga/g/c?v=2&tid=G-N5HD1RTH6E>m=45g92e6330h2v881708235z872249685za20kzb72249685zd72249685&_p=1772583880303&gcs=G100&gcd=13p3p3p3p5 tid CSV=1 shipped=0 https://sgtm.ixbt.com/al/gtag/js?id=G-ZEN51QVN2K&l=analytics&cx=c>m=4e6321&sign=abfe41c26055067c28bbb13edc0cd53258745df26671f9b7e539ac4135897414_20260304 _u CSV=1 shipped=0 https://en.zalando.de/api/t/gtm/g/collect?v=2&tid=G-MDW1S9PQPW>m=45he6321v9173628720za204zd9173628720&_p=1772625512418&gcs=G100&gcd=13q3q3q2q5l1&npa=1&dma_cps
4.4 The preprint's headline figures against its own released data
- sst_guard_datacheck-output.txt
=== sst-domains.txt — paper claims sGA detected on 6,314 domains === lines: 6314 distinct: 6314 paper: "we detect sGA on 4.21% (6,314) of Tranco top-150K websites"; also "we first run the classifier on 128,222 domains". 6314/150000 = 4.21% ; 6314/128222 = 4.92% === ground-truth.csv — paper claims 403 ground-truth sGA domains from Tranco top-10k === rows: 1286 distinct tranco_domain: 404 columns: chr, tranco_domain, event_name, container_id 403/10000 = 4.03% (paper: "4.02% (403) sGA domains") === sst-guard-output.csv — per-modality output on the ground-truth domains === rows: 403 columns: domain | Network Request (Per-Request) | Network Request (Domain-Level) | Cookies | Window Variables | Meta-Classifier | Combined Classifier Network Request (Per-Request) True on 393 of 403 97.5% Network Request (Domain-Level) True on 387 of 403 96.0% Cookies True on 390 of 403 96.8% Window Variables True on 401 of 403 99.5% Meta-Classifier True on 398 of 403 98.8% Combined Classifier True on 396 of 403 98.3% distinct domains in output: 403 ground-truth domains absent from output: 1 output domains absent from ground truth: 0 e.g. README.md names this file "ground-truth-labels.csv"; the repository ships it as "sst-guard-output.csv". No file called ground-truth-labels.csv exists. === adblock-filtered.csv — paper claims 40,199 sGA requests on 6,314 domains === data rows: 40198 distinct 'domain': 6314 distinct 'landing_domain': 4856 rows with predicted_label=1: 40198 on 6314 distinct 'domain' rows with predicted_probability < 0.7 (the paper's chosen threshold): 0 (0.0%) requests whose path is exactly /g/collect: 28014 (69.7% of requests) requests whose path ends in /collect: 32269 (80.3%) paper reports these two as shares of DOMAINS (71.94% and 79.97% of sGA endpoints), not requests. distinct request paths: 1420 28014 /g/collect 557 /api/t/gtm/g/collect 556 /metrics/ag/g/c 470 /metrics/g/collect 375 /measurement4/g/collect 274 /sgtm/g/collect 230 /metrics/ga/g/c 210 /googletaggatewayall/ga/g/c 195 /st 151 /t/gtm/g/collect === adblock-filtered.csv — the same two path figures computed per DOMAIN === domains with >=1 request on path /g/collect : 4591 of 6314 (72.71%) paper: 4,542 / 71.94% domains with >=1 request whose path ends /collect: 5192 of 6314 (82.23%) paper: 5,049 / 79.97% === adblock-filtered.csv — subdomain vs path-based routing (paper: 81.59% / 18.4%) === requests whose request host is a strict subdomain of 'domain': 22051 (54.9% of requests) distinct 'domain' with >=1 such request: 3389 of 6314 (53.67%) distinct 'domain' where EVERY request host equals the apex or www (path-based): 2925 (46.33%) The paper does not state which rule it used. Three defensible rules: A host is a strict subdomain, www stripped : 3389 (53.67%) B host is anything other than the apex : 6056 (95.91%) C host differs from the crawled landing : 5425 (85.92%) paper: 81.59% subdomain-based / 18.4% path-based (5,152 subdomains analysed further)
4.5 Stale-number guard
Every figure on the page outside a <file> block, a <code> block or a footnote is either produced by one of the scripts above or declared in the guard's EXTERNAL table with the sentence in the source it came from. The counts are in the block below rather than in this sentence, because an earlier version of this sentence said 142 while the block said 146 — see §10.4 finding 8.
What this proves and does not prove. It proves a number appears in a script output, or is declared with a source. It does not prove the number is the right one for the sentence it sits in — that has to be re-read by hand, and was. Two false positives of the digit extractor are declared rather than special-cased, so the extractor stays simple: 733 from the commit hash 0ad9e733, and the version string 202608210608.
- sst_number_guard-output.txt
figures on the page (outside <file>/<code>/footnotes): 152 declared external, with a source: 64 unaccounted: 0 OK — every figure is either produced by a script in this repo or declared with its source.
4.6 External facts, re-fetched
- sst_external_checks-output.txt
run date: 2026-08-21T06:55Z === EasyPrivacy: does the list carry server-side-specific rules? === ! Version: 202608210644 ! Last modified: 21 Aug 2026 06:44 UTC ! Commit: 94b83d3bdde6b86dbceabfad0996066f0f9df66d total lines: 56674 -- the three rule families SST-Guard names -- 29:&sst.gcsub= 2996:?v=2&tid=G-$~third-party 3097:&sst.sw_exp= -- per-site rules whose host starts with a server-side tagging prefix -- ||sgtm[.-] 3 rules ||sst[.-] 9 rules ||gtm[.-] 5 rules ||tagging[.-] 3 rules ||metrics[.-] 1368 rules ||analytics[.-] 628 rules -- SST-Guard's named example rule -- 16159:||mstm.motorsport.com^ === AdGuard CNAME-cloaked tracker list: still maintained? === {"full_name": "AdguardTeam/cname-trackers", "description": "This repository contains a list of popular CNAME trackers", "pushed_at": "2026-08-17T15:56:27Z", "archived": false, "stargazers_count": 426} === arXiv 2604.27497 (SST-Guard): how many versions, any journal ref? === <title>arXiv Query: search_query=&id_list=2604.27497&start=0&max_results=10</title> <updated>2026-08-21T06:18:28Z</updated> <title>SST-Guard: Detecting and Characterizing Server-Side Google Analytics in the Wild</title> <updated>2026-04-30T06:50:14Z</updated> <published>2026-04-30T06:50:14Z</published> (an <arxiv:journal_ref> line would appear above if it had been published at a venue) === Has SST-Guard appeared at a venue? PETS 2026 posters === SST-Guard: Detecting and Characterizing Server-side Google Analytics in the Wild -- and what PETS says posters are: Proposals will be lightly reviewed for relevance to PETS and adherence to formatting guidelines. Please see the Call for Papers for a non-exhaustive list of topics of interest. Posters will not be peer-reviewed === Has Mertens et al. appeared at a venue? CCS 2026 accepted papers === Detecting and Measuring Client- and Server-Side Google Tag Manager and its Tags in 80K Websites Gilles Mertens (Inria Centre at University Grenoble-Alpes) Nataliia Bielova (Inria Centre at University Côte d’Azur) Vincent Roca (Inria Centre at University Grenoble-Alpes) Ahmed Bouhoula (ETH Zurich) (CCS is one of this corpus's seven venues; CCS 2026 has not been held, which is why this paper is absent from every corpus figure on the page) === HAL hal-05466083 (Mertens et al.): venue, type, date === { "response":{ "numFound":1, "start":0, "maxScore":5.5644565, "numFoundExact":true, "docs":[{ "title_s":["An Analysis of Client-and Server-Side Google Tag Manager and its Tags on the Web"], "authFullName_s":["Gilles Mertens","Nataliia Bielova","Vincent Roca","Ahmed Bouhoula","Marouanne Akassab"], "uri_s":"https://hal.science/hal-05466083v2", "docType_s":"UNDEFINED", "submittedDate_s":"2026-02-06 09:38:02" }] } } === Google: current server-side tagging recommendation === 200 https://developers.google.com/tag-platform/tag-manager/server-side/intro 200 https://developers.google.com/tag-platform/tag-manager/server-side/custom-domain 200 https://privacysandbox.google.com/blog/privacy-sandbox-next-steps
5. Folds, and their residue
Nothing on this page aggregates a free-text name, so no name fold was written. What this page has instead are two classification steps, and both print their residue in full.
5.1 The A-sweep split, and its 56-paper residue
The wide detection[] sweep on /cname|server-?side/i matches 63 papers. “Server-side” is an extremely common phrase in security work that has nothing to do with tracking — server-side request forgery, server-side malware, server-side vote alteration, server-side cloaking in phishing, CNAME chains in CDN and TLS measurement. Splitting on a tracking predicate leaves 7 relevant and 56 residue. The residue is not dropped: it is printed in full in §4.1 under – residue: matched “server-side”/“CNAME” but not about web tracking –, and it is the evidence for the page's claim that the extraction schema cannot answer this page's question.
The 7 relevant papers, in full, so the reader can disagree with the split:
| Year | Venue | Paper | Why kept |
|---|---|---|---|
| 2012 | NDSS | Ghost Domain Names: Revoked Yet Still Resolvable | Borderline. Tracks TTL of a www.google.com CNAME record; it is DNS work, not tracking work. Kept by the predicate, and it is a false positive of the predicate |
| 2021 | PETS | The CNAME of the Game [2Dimova, Yana; Acar, Gunes; Olejnik, Lukasz; Joosen, Wouter; Van Goethem, Tom (2021): "The CNAME of the game: Large-scale analysis of DNS-based tracking evasion", Proceedings on Privacy Enhancing Technologies 2021:394–412. (DOI) (Link)] | The canonical CNAME-cloaking measurement |
| 2022 | IEEE S&P | Journey to the Center of the Cookie Ecosystem | Cookie-ecosystem roles; CNAME appears as an actor relationship |
| 2023 | USENIX Sec | Cookie Crumbles: Breaking and Fixing Web Session Integrity | Borderline; server-side cookie-parser inconsistencies. Also a false positive of the predicate |
| 2024 | PETS | The Devil is in the Details [3Fouad, Imane; Santos, Cristiana; Laperdrix, Pierre (2024): "The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web", Proceedings on Privacy Enhancing Technologies 2024(4):450-465. (DOI)] | The subject |
| 2024 | PETS | Client-side and Server-side Tracking on Meta [4El fraihi, Asmaa; Amieur, Nardjes; Rudametkin, Walter; Goga, Oana (2024): "Client-side and Server-side Tracking on Meta: Effectiveness and Accuracy", Proceedings on Privacy Enhancing Technologies 2024(3):431-445. (DOI)] | The subject |
| 2024 | PETS | Opted Out, Yet Tracked | Tracking after opt-out; CNAME appears among evasion techniques |
So the honest reading is 7 by the predicate, 5 on inspection, 2 that actually study SST. The page states the “two papers” figure, which is the one that was checked by hand, and reports 63 and 56 as the sweep and its residue.
5.2 The cname_any residue
cname_any (151 papers) minus cname_cloak (46) leaves 105 papers that say “CNAME” without saying anything about cloaking or tracking. They are printed in full in §4.1 under PASS B — residue. Spot-reading them: DNS resolver behaviour, CDN mapping, RPKI publication points, certificate issuance, DNS manipulation. None belongs on this page. This residue is why the page quotes 46 and not 151 and says which is which.
5.3 No fold was needed, and why that is a limitation
The absence of a name fold is itself a finding: there is no field to fold. Had the extraction carried, say, detection.phenomenon == “server-side tracking” as a recognised value, this page could have been built the way crawling_location or requests were. It could not. Every corpus figure here is a probe result, and probe results are weaker evidence than folded enum counts. The page says so.
6. Quotes and figures checked against the source papers
scripts/sst_quotecheck.mjs checks 25 quotes and literal figures. 25 located, 0 not located. Each is checked against three renderings — paper.cols.txt, paper.txt, paper.norm.txt — with whitespace collapsed, end-of-line hyphenation joined, and curly quotes, apostrophes and dashes normalised.
- sst_quotecheck-output.txt
OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt 10.41% of the visited websites OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt we found that 996 OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt first-party subdomains belong to a different organization compared to OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt We detect that cloaked domains appear on 767 websites OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt we detected that 474 (47.59%) domains are either receiving or setting an identifier on the user’s browser OK [devil] via paper.cols.txt We detect 32 SST domains sharing URL parameters names and cookies with trackers no longer appearing on the website OK [devil] via paper.cols.txt 389, out of 7,367 visited websites, track users behind a cloaked domain OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt we used stateless crawling instances OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt we did not interact with cookie banners on the visited OK [devil] via paper.cols.txt We found that 119 cloaked trackers receive at least one ID cookie set by a different third-party domain OK [devil] via paper.cols.txt we detect that 18.75% of the SST domains are receiving at least one of the user’s browser and machine features OK [devil] via paper.cols.txt out of the detected 69 trackers shifted to the server side, 40 (57.97%) are included in the Disconnect filter list OK [devil] via paper.cols.txt We found that 35% of the cookies set/sent to the SST domains and classified by Cookiepedia are categorized as Targeting/Advertising OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt we eliminate subvalues with a length smaller than 8 OK [devil] via paper.cols.txt we eliminate subvalues that have more than 66% similarity across the two crawls according to the Ratcliff-Obershelp algorithm OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt We do not impose any restrictions on the cookie lifetime OK [devil] via paper.cols.txt Amazon and Google alone are responsible for 81.25% of SST domains OK [devil] via paper.cols.txt The main limitation is that we only detect a subset of the servers partaking in SST OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt cookies planned for 2025 is having severe ramifications OK [devil] via paper.cols.txt 17.86% of websites including SST are categorized as Online Shopping OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt these trackers appear on 397 websites (5.28% of the visited OK [devil] via paper.cols.txt,paper.txt,paper.norm.txt Cloaked trackers 474 389 OK [meta] via paper.cols.txt Meta’s server-side technology can match between 34% and 51% of website visitors to user profiles OK [meta] via paper.cols.txt,paper.txt,paper.norm.txt links between 42% and 61% of user profiles OK [meta] via paper.cols.txt while the Pixel-based tracking achieves 100% accuracy, less than 65% of the profiles matched by server-side tracking are accurate 25 located, 0 not located, of 25 checked located but NOT in paper.cols.txt (column interleaving, not a quoting error): 0
Six of the 25 had to be shortened to fragments, and the reason is a property of the corpus rather than of the papers. The .cols repair interleaves the two columns of a PETS PDF mid-sentence in places. For example the raw text around the 996-subdomain figure reads:
... 6,273 (83.39%) of the first-party subdomains. we found that 996 Starting without any cookies or cached resources forces the browser first-party subdomains belong to a different organization compared to contact all trackers again and recreate all cookies, thus allowi...
So “we found that 996 first-party subdomains belong to a different organization” — verbatim in the PDF — cannot be located as a contiguous string in any rendering. The two halves were checked separately. No quote failed for a reason other than this, and none of the three renderings located a quote that paper.cols.txt missed, so .cols was sufficient here once fragments were used.
6.1 An internal inconsistency in the peer-reviewed paper
Fouad et al. [3Fouad, Imane; Santos, Cristiana; Laperdrix, Pierre (2024): "The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web", Proceedings on Privacy Enhancing Technologies 2024(4):450-465. (DOI)] report the number of websites carrying a cloaked tracker twice and differently. Both are located verbatim:
| Location | Text |
|---|---|
| Abstract | “389, out of 7,367 visited websites, track users behind a cloaked domain” |
| Table 1 | Cloaked trackers | 474 | 389 |
| §5.3 prose | “these trackers appear on 397 websites (5.28% of the visited websites)” |
5.28% of 7,367 is 389.0, not 397. Two of the three statements say 389, and the percentage attached to the third says 389. The page uses 389 and says why. A second, softer ambiguity was noticed and deliberately not published: §5.4 says “we detected 32 cross-site trackers shifted to the server side” in a paragraph whose other figures are 32 SST domains and 69 shifted tracker subdomains, so “32 cross-site trackers” may be a repetition of the SST-domain count rather than a separate quantity. It is ambiguous rather than wrong, and no figure on the page depends on it.
7. External sources, and how each was verified
| Claim on the page | Primary source | How verified |
|---|---|---|
| Google shipped server-side tagging in August 2020 | Google's own launch material, as cited by [3Fouad, Imane; Santos, Cristiana; Laperdrix, Pierre (2024): "The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web", Proceedings on Privacy Enhancing Technologies 2024(4):450-465. (DOI)] §4.4 and [5Jazlan, Muhammad; Gamero-Garrido, Alexander; Shafiq, Zubair; Vekaria, Yash (2026): "SST-Guard: Detecting and Characterizing Server-Side Google Analytics in the Wild". Preprint, arXiv v1 of 30 April 2026; also presented as a poster at PETS 2026, which states that posters "will not be peer-reviewed". Not peer-reviewed as of 21 August 2026 (DOI)] §2.1 | Taken from two independent peer-reviewed/preprint statements rather than from the Google blog post, whose per-post URL has moved |
| Google now recommends same-origin serving first, ahead of a subdomain | developers.google.com/tag-platform/tag-manager/server-side/custom-domain (“Last updated 2025-06-27”) and …/manual-setup-guide (“Last updated 2026-05-08”) | Read from the rendered page 2026-08-21. Two sentences quoted verbatim in the page's footnote. curl returns a JavaScript shell for these URLs, so the provenance script checks only that they return HTTP 200; the quotes were read by a fetch-and-render tool. This is the weakest verification on the page and is flagged as such in the footnote itself |
| Chrome will keep third-party cookies; no standalone prompt | privacysandbox.google.com/blog/privacy-sandbox-next-steps, Anthony Chavez, 2025-04-22 | Fetched 2026-08-21; sentence quoted verbatim. Note the older privacysandbox.com/news/privacy-sandbox-next-steps/ URL 301-redirects here |
| EasyPrivacy carries server-side-specific rules | easylist.to/easylist/easyprivacy.txt | Downloaded 2026-08-21. Version: 202608210608, Commit: 0ad9e733cadaffac3c0b445bf27f33d3da5546da, 56,674 lines. Rules located by line number: &sst.gcsub= (29), ?v=2&tid=G-$~third-party (2996), &sst.sw_exp= (3097), ||mstm.motorsport.com^ (16159). The list changes several times a day; re-run the script rather than citing this sentence |
| AdGuard's CNAME-cloaked tracker list is actively maintained | GitHub REST API on AdguardTeam/cname-trackers | Fetched 2026-08-21: archived: false, pushed_at: 2026-08-17T15:56:27Z |
| SST-Guard is not peer-reviewed: arXiv v1 only, plus a PETS 2026 poster | export.arxiv.org/api/query?id_list=2604.27497; petsymposium.org/2026/accepted-posters.php; petsymposium.org/2026/cfposters.php | Fetched 2026-08-21. arXiv: a single entry, published and updated both 2026-04-30T06:50:14Z — so v1 only — and no <arxiv:journal_ref> element, which is what arXiv emits once a paper has a venue. The first version of this table said “preprint with no venue”, which the currency reviewer refuted: the paper is on the PETS 2026 accepted-posters list. The qualification that saves the framing is PETS's own: “Proposals will be lightly reviewed for relevance to PETS and adherence to formatting guidelines” and “Posters will not be peer-reviewed”. All three checks are now in sst_external_checks.sh |
| Mertens et al. 2026 is accepted at ACM CCS 2026 | sigsac.org/ccs/CCS2026/program/accepted-papers.html; HAL API on halId_s:hal-05466083 | Fetched 2026-08-21. The CCS accepted-papers page carries “Detecting and Measuring Client- and Server-Side Google Tag Manager and its Tags in 80K Websites” with all five HAL authors. The first version of this table concluded the opposite from HAL and DBLP alone: HAL still says docType_s: UNDEFINED, submittedDate_s: 2026-02-06, no conferenceTitle_s and no journalTitle_s, and DBLP lists the authors' EuroS&P 2025 paper and no 2026 one. Neither repository knows about an acceptance until publication, which is the lesson: for a 2026 paper, check the venue's own accepted-papers page, not the preprint servers. Now in sst_external_checks.sh |
| The SST-Guard artefacts are as described | github.com/jazlan01/sst-guard | Cloned 2026-08-21. Single commit 9e013d4 of 2026-04-30 UTC (git log shows 2026-04-29 21:20 -0700; the page and this table use UTC so they agree with the GitHub API). 37 MB: four data files plus dist_chrome.zip |
| Moti et al. found SST on 19 of 50 pharmacy sites, with a 36-parameter heuristic | the paper's own PDF at gunesacar.net/assets/bitter-pill-pharmacy-privacy-dpm-25.pdf | Fetched and text-extracted 2026-08-21. “we found that 19 of the 50 sites used SST”; “This yielded a list of 36 parameters, which we searched for in all requests” |
| The 2025–2026 corpus papers cite SST as the reason their own defences fail | the papers' own paper.cols.txt | Read directly. CookieGuard's sentence is quoted verbatim on the page |
7.1 Sources rejected, and why
| Source | Why rejected |
|---|---|
| Vendor marketing pages for Meta CAPI, Microsoft CAPI, TikTok Events API, Snapchat CAPI, Reddit CAPI, Netflix Conversion API | The page needs the fact that these products exist and are sold on ad-blocker resilience, and [5Jazlan, Muhammad; Gamero-Garrido, Alexander; Shafiq, Zubair; Vekaria, Yash (2026): "SST-Guard: Detecting and Characterizing Server-Side Google Analytics in the Wild". Preprint, arXiv v1 of 30 April 2026; also presented as a poster at PETS 2026, which states that posters "will not be peer-reviewed". Not peer-reviewed as of 21 August 2026 (DOI)] §2.1 already quotes each vendor's own wording with a citation. Citing the marketing pages directly would add six links that rot and would import the vendors' framing. The page says “Meta, Microsoft, TikTok, Snapchat, Reddit and Netflix all sell an equivalent” and leaves the sourcing to the preprint |
| Stape.io product pages | Named in the preprint as the source of the base64 obfuscation template and as the second-largest CNAME host. That is a measurement result, not a vendor claim, so it is cited to the preprint. No independent verification of Stape's own product descriptions was attempted and none is claimed |
| Agency and consultancy blog posts on “server-side tagging” (several appeared at the top of search results) | Exactly the SEO-listicle failure mode this site has been caught by before. None was used and none should be re-added: they contain no measurement and their claims about detectability are marketing |
| Simo Ahava's blog, cited by the preprint as its reference for sGTM | A well-regarded practitioner source, but it is a blog and the page makes no claim that needs it |
hal.science PDF of Mertens et al. | Behind an Anubis bot wall that defeats curl, WebFetch and a headless Playwright Chromium. The paper itself was therefore never read — only its HAL metadata and abstract via the HAL API, plus [5Jazlan, Muhammad; Gamero-Garrido, Alexander; Shafiq, Zubair; Vekaria, Yash (2026): "SST-Guard: Detecting and Characterizing Server-Side Google Analytics in the Wild". Preprint, arXiv v1 of 30 April 2026; also presented as a poster at PETS 2026, which states that posters "will not be peer-reviewed". Not peer-reviewed as of 21 August 2026 (DOI)] §7.3's description of it. The page's sentences about it are limited to what the abstract supports, and §8 records this as the largest hole in the page |
8. What could not be established
- The Mertens et al. 2026 paper was not read, and this is the largest hole in the page. HAL's Anubis bot wall blocked
curl,WebFetchand a headless Playwright Chromium (all three return “Making sure you're not a bot!” or “Oh noes!”); only the HAL API metadata and abstract were obtained. Everything the page says about its method therefore comes from [5Jazlan, Muhammad; Gamero-Garrido, Alexander; Shafiq, Zubair; Vekaria, Yash (2026): "SST-Guard: Detecting and Characterizing Server-Side Google Analytics in the Wild". Preprint, arXiv v1 of 30 April 2026; also presented as a poster at PETS 2026, which states that posters "will not be peer-reviewed". Not peer-reviewed as of 21 August 2026 (DOI)] §7.3, which is a competitor's characterisation of it, and everything it says about its results comes from the HAL abstract. It matters more than when this note was first written, because the paper turned out to be accepted at CCS 2026 — peer-reviewed, at one of this corpus's own seven venues. Read it from the CCS proceedings when they appear and correct the row. - No crawl was run. The SST-Guard audit is a source audit of released code and data. Nothing here tests whether SST-Guard's classifier is accurate in the field; the finding is narrower and stated narrowly on the page: its released artefacts do not reproduce its released numbers.
- The 81.59% / 18.4% routing split could not be reproduced because the preprint does not state the rule. Three defensible readings of the released columns give 53.67%, 85.92% and 95.91%. The closest is “request host differs from the crawled landing domain” at 85.92%. The page reports the spread rather than picking one.
- Whether the
window-modality templates were re-derived on a different machine from the crawl is an inference, not an established fact. The evidence is that the network templates pin Linux 5.15.0 / x86 (matching the paper's stated crawl host) while the window templates pin Chrome 144.0.7559.97, platform 26.2.0 andarm. The page says the two “pin a different machine” and does not speculate about which machine or why. - The interaction-depth effect is unmeasured by anyone, including here. The page's claim that interaction depth drives the 0.38%–38% spread is an ordering argument across four studies that differ in several ways at once. It is stated as the page's own reading and put in Open Questions as the experiment that would settle it. This is the most load-bearing unverified inference on the page.
- No longitudinal SST figure exists, so the page makes no growth claim beyond “adoption grew” sourced to the succession of studies, and flags the absence.
- Meta CAPI, TikTok Events API and Measurement-Protocol deployments have no published detection method at all, so the page cannot say how much SST it is failing to see. “Lower bound” is used deliberately.
ground-truth.csvhas 404 distincttranco_domainvalues, one of which is the empty string. Whether that is a parsing artefact of the release or a dropped row in the authors' pipeline is unknown; it does not change the 403 figure.- A TODO the page carries openly: nobody has checked whether the
17-prefix expiry in SST-Guard's templates (2027-01-15) is known to its authors. Filing it upstream would be a service and was not done.
9. Judgement calls
- A new page rather than broadening
privacy:requests.privacy:requestsis about deciding whether a request is tracking; SST is about the request not existing. Folding SST into it would have buried the point that the instrument, not the classifier, is what fails. The two pages cross-link. A reasonable person could have made this a long section ofprivacy:requestsinstead. - Leading with the disagreement between the four estimates rather than with a definition. The single most useful thing for a reader is that the field's numbers span two orders of magnitude for definitional reasons. Leading with “what SST is” would have been the textbook ordering and would have buried that.
- Dating Fouad et al.'s method as historical and not reproducible. This is the harshest call on the page and it is about the method, not the paper: step one requires a crawl predating August 2020. The paper remains the definitional reference and the page says so twice.
- Publishing the SST-Guard artefact audit at all. It is a critical audit of an unrefereed preprint by named researchers, published on a public wiki. It was kept because the item asked specifically for which of its signals are reproducible from a crawl a reader can run, and that question is unanswerable without it — but every claim is derived from a script whose code and unedited output are on this page, the framing is explicitly “a source audit, not a reproduction attempt”, and the page states that none of it is evidence against the paper's conclusions. A reasonable person could have limited the page to “the released extension differs from the released data; treat its accuracy figures as the authors' own”.
- Calling “filter lists cannot see SST” superseded. The 2024 paper says there are “no existent solutions to block Server-side tracking specifically”. EasyPrivacy in 2026 demonstrably has some, and blocks 93.50% of SST-Guard's requests. The nuance — it is the customised tail lists miss, not SST as such — is on the page because the flat claim is now wrong and gets repeated.
- Not writing a name fold. There is nothing to fold. Recorded as a limitation in §5.3 rather than passed over.
- Cutting the year table at 2019 in the “Use in Publications” section, and naming the three pre-2019 hits individually as false positives instead. Nine more mostly-zero rows would have been honest but unreadable; naming them is more informative than tabulating them, because the interesting fact is why each matched.
- Treating the CCS 2026 acceptance as strengthening the corpus caveat rather than as an embarrassment. The review found a load-bearing status claim wrong. The tempting response is a quiet one-word fix. The response taken instead was to make it a feature of the page: a peer-reviewed paper at one of the corpus's own seven venues, invisible to every corpus figure because that venue-year has not happened, is a better argument for reading the 2026 numbers as a floor than any caveat sentence.
- No
~~DISCUSSION~~on this page. Comments belong on the content page; this follows the convention set by the earlier provenance pages on this site. - Reporting 40,198 rather than the preprint's 40,199. It is an off-by-one against a header line, it changes nothing, and a reader who re-runs the script will see 40,198 and needs to know why.
10. Review pass, 2026-08-21
Four reviewers, told explicitly that the author's context might not be exhaustive, and each handed the page text, the scripts, and their unedited output. The three focused passes ran in parallel first; the generic pass ran after their findings were acted on. Findings accepted and rejected are recorded below — the rejections matter as much as the fixes, because they are the only record of whether a reviewer is worth its slot.
10.1 Figures versus the scripts (Sonnet)
Five of the six scripts reproduced their committed output byte-for-byte when the reviewer re-ran them from fresh archives; the sixth (sst_external_checks.sh) differed only in run timestamp, EasyPrivacy version and commit, and a HAL relevance score — all expected drift from live sources. Three real errors on the page, all accepted and all fixed.
| # | Finding | Action |
|---|---|---|
| 1 | The page said the any-parameter replay “reaches 100% for 12 of the 23 features”. Recounting the committed output gives 15 displayed at 100.0%, of which 14 are exactly 1.0 and the fifteenth (uapv) is 99.9975% and only rounds | Accepted and fixed, and the script was changed rather than only the page: sst_guard_replay.mjs now prints the exact-1.0 count and names the feature that merely rounds, so the distinction cannot be lost again. The page states 15, 14 exactly, and names uapv. This was a straight authoring error — the figure was eyeballed off a rounded column instead of computed |
| 2 | The page attributed the preprint's 21.05% CNAME figure to its abstract. It appears in §1 and §7.3, never in the abstract | Accepted and fixed. The arithmetic in that table row (1,329/6,314 rather than 1,329/5,152) was confirmed correct; only the location was wrong. On a page whose whole point is other people's fidelity, mislabelling where a claim sits is not a small error |
| 3 | The page claimed four 2025–2026 papers “cite [4El fraihi, Asmaa; Amieur, Nardjes; Rudametkin, Walter; Goga, Oana (2024): "Client-side and Server-side Tracking on Meta: Effectiveness and Accuracy", Proceedings on Privacy Enhancing Technologies 2024(3):431-445. (DOI)] … and move on”. Two do. Tracking Without Borders [6Weerasekara, Nipuna; Moreno, José Miguel; Matic, Srdjan; Reardon, Joel; Tapiador, Juan; Vallina-Rodríguez, Narseo (2025): "Tracking Without Borders: Studying the Role of WebViews in Bridging Mobile and Web Tracking", Proceedings on Privacy Enhancing Technologies 2025(4). (DOI)] does not mention server-side tracking at all — it measures CNAME tracking inside mobile WebViews — and PIIxel Leaks cites [3Fouad, Imane; Santos, Cristiana; Laperdrix, Pierre (2024): "The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web", Proceedings on Privacy Enhancing Technologies 2024(4):450-465. (DOI)] and [7Dao, Ha; Mazel, Johan; Fukuda, Kensuke (2021): "CNAME Cloaking-Based Tracking on the Web: Characterization, Detection, and Protection", IEEE Transactions on Network and Service Management 18(3):3873-3888. (DOI)], not the Meta paper | Accepted and fixed, by re-reading all four papers rather than trusting the reviewer: confirmed by grepping three renderings of each for “Fraihi”, “Amieur”, “Conversions API” and “CAPI”. The sentence now names only the two that do cite it, says what the other two actually do, and gained a bibliography entry for PIIxel ([1Bekos, Paschalis; Papadopoulos, Panagiotis; Kourtellis, Nicolas; Polychronakis, Michalis (2025): "PIIxel Leaks: Passive Identification of Personally Identifiable Information Leakage through Meta Pixel", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)]). This was the worst error on the page: the four-paper list was assembled from the full-text probe hits and then given a shared attribution none of them had been checked for. It is precisely the failure the “read the evidence behind any figure” rule exists to prevent, applied to citations instead of figures |
| 4 | Everything else confirmed exactly: all Pass A and Pass B denominators, the 63/7/56 sweep split, the year table, the eleven sst_term papers, every sst_guard_* figure, all 25 quotes, and the externally-sourced figures — including an independent re-derivation of the 91-distinct-domain and 119-cloaked-tracker counts from Fouad's full text | No action |
| 5 | No bug in any script this page publishes; the SST-Guard extension bugs the page describes were independently re-verified | No action |
10.2 Citations and quotes (Sonnet)
Verdict: no citation-resolution defect, no DOI collision, no misattributed claim. All 13 citekeys resolve to exactly one entry each and render as numbered references 1–13; DOIs were compared, not just key strings. The 25-quote script was re-run by the reviewer and reproduced. Two findings, both accepted.
| # | Finding | Action |
|---|---|---|
| 1 | The CookieGuard quote silently elides a section cross-reference and three citation markers: the source reads “…including our own CookieGuard (§6), by proxying exfiltration through seemingly first-party endpoints [4, 28, 71].” | Accepted and fixed. The page now shows both elisions with […] and says what was elided. Small, but “verbatim” has to mean verbatim on a page that criticises other people's artefacts for fidelity |
| 2 | The shared bibliography contains an unrelated duplicate: fouad2022my and fouad2022_cookie are the same paper (Fouad et al., “My Cookie is a phoenix”, PETS 2022, DOI 10.56553/popets-2022-0063) under two keys | Accepted as real, deliberately not fixed here. Both keys are in live use on other pages — fouad2022my on privacy:fingerprinting (2×) and programming:stateful_stateless (3×), fouad2022_cookie on practices:legal_enforcement and statistics:hypothesis_testing — so deleting either breaks a page. Consolidating it means editing four pages outside this item, so it was filed as a separate work item instead of half-done. This page adds no duplicate of its own |
Two claims the reviewer explicitly could not verify and correctly declined to bless: the SST-Guard artefact-audit figures (they need the 306 MB released CSV, which it did not fetch) and the corpus counts (they need the dataset mount). Both are covered by the figures reviewer in §10.1 instead.
10.3 External currency (Sonnet)
One load-bearing claim was wrong, and it was the one this pass exists to catch.
| # | Finding | Action |
|---|---|---|
| 1 | Mertens et al. [8Mertens, Gilles; Bielova, Nataliia; Roca, Vincent; Bouhoula, Ahmed; Akassab, Marouane (2026): "Detecting and Measuring Client- and Server-Side Google Tag Manager and its Tags in 80K Websites", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. Accepted at CCS 2026 (verified on the SIGSAC accepted-papers list, 21 August 2026); to appear. Preprint at HAL hal-05466083v2, submitted 6 February 2026, under the title "An Analysis of Client- and Server-Side Google Tag Manager and its Tags on the Web" (Link)] is not venue-less. It is accepted at ACM CCS 2026, under the title “Detecting and Measuring Client- and Server-Side Google Tag Manager and its Tags in 80K Websites”, same five authors as the HAL record | Accepted and fixed everywhere. Independently re-verified against sigsac.org/ccs/CCS2026/program/accepted-papers.html before acting, and the check was added to sst_external_checks.sh so it re-runs. Three tables, the opening box, two Open Questions bullets and the venue-coverage limitation were rewritten. The correction is not a small one: CCS is one of this corpus's own seven venues, so this paper is missing from every corpus figure on the page only because CCS 2026 has not been held — which is a far better illustration of the provisional-2026 caveat than anything the page had before. The bibliography entry was changed from @misc to @inproceedings |
| 2 | SST-Guard [5Jazlan, Muhammad; Gamero-Garrido, Alexander; Shafiq, Zubair; Vekaria, Yash (2026): "SST-Guard: Detecting and Characterizing Server-Side Google Analytics in the Wild". Preprint, arXiv v1 of 30 April 2026; also presented as a poster at PETS 2026, which states that posters "will not be peer-reviewed". Not peer-reviewed as of 21 August 2026 (DOI)] was shown as a poster at PETS 2026 (22 July 2026), so “no venue” was too flat | Accepted and fixed, with the qualification that matters: PETS's own call for posters says proposals are “lightly reviewed for relevance to PETS and adherence to formatting guidelines” and “Posters will not be peer-reviewed”. Both sentences were fetched and are now in the external-checks output. arXiv still shows v1 only and no journal_ref, so the preprint framing stands |
| 3 | Everything else CONFIRMED: the sst-guard repo's single commit; the AdGuard CNAME list's push date; EasyPrivacy's version, commit and all four cited rules — the reviewer independently enumerated the nine sst.-prefixed hosts and got nine; all three Google/Privacy-Sandbox quotes and their “Last updated” dates; that nothing has superseded Google's 2025-04-22 third-party-cookie decision; Safari's CNAME mitigation; Consent-O-Matic; Fouad et al.'s DOI and pagination | No action |
| 4 | Noted that EasyPrivacy had already moved to 202608210616 minutes after the page's cited 202608210608 | No action, and this is the point. The page tells the reader to re-run the script rather than cite its sentence, and the reviewer confirming the version moves within minutes is evidence the warning is warranted |
| 5 | Observed that Google reversed Tag Assistant's deprecation in late 2024 | Rejected as not affecting the page. The page's only statement about it is that SST-Guard kept Tag Assistant out of training “so the system survives its deprecation”, which is a design rationale and remains valid whether or not the deprecation happened. Adding the reversal would be a fact about Google, not about measurement |
| 6 | Could not independently confirm Microsoft's and Netflix's server-side product names | Rejected as a change. The page's sentence names six vendors and sources the list to [5Jazlan, Muhammad; Gamero-Garrido, Alexander; Shafiq, Zubair; Vekaria, Yash (2026): "SST-Guard: Detecting and Characterizing Server-Side Google Analytics in the Wild". Preprint, arXiv v1 of 30 April 2026; also presented as a poster at PETS 2026, which states that posters "will not be peer-reviewed". Not peer-reviewed as of 21 August 2026 (DOI)] §2.1, which quotes each vendor's own wording. The page makes no claim of its own about those products |
10.4 Generic pass (Fable)
The most valuable of the four passes, and the only one that questioned the page's judgement rather than its facts. Twelve findings; eleven accepted, one rejected, one deferred to a human.
| # | Finding | Action |
|---|---|---|
| 1 | Open Questions said in bold “no peer-reviewed SST detector exists that can be run”, one clause before conceding that Moti et al. is peer-reviewed and runnable. The methods table had the same defect (“the only peer-reviewed runnable method”) | Accepted and fixed. The claim is now “no SST detector published at a main security or measurement venue can be run today”, and the page says outright that an earlier draft got this wrong. The reviewer is right that these are the sentences a student copies into a related-work section |
| 2 | “adding product names and API names returns 26; the widest phrasing probe adds 18 more” — the union is 25, and moved_server adds 16 new (18 total, two overlapping). Neither number was in any script output; the number guard had blessed them because 26 and 18 appear elsewhere | Accepted and fixed, in the script first. report_server_side_tracking.mjs now prints the unions explicitly and says they are unions and never sums. This is the corpus-level lesson exactly: the guard proves a number appears somewhere, not that it is the right number for its sentence |
| 3 | The page asserted in bold “while SST adoption grew anyway” and then said, in Open Questions, that there is no time series so “SST is growing” is an assertion. And the succession of studies cannot support it, because the page's own thesis is that they are not comparable | Accepted and fixed. The claim is now “later studies, under broader definitions, find far more of it than the 2024 one did”, with a pointer to the Open Question. A clean self-contradiction, and the sharpest finding of the pass |
| 4 | The 18.4% path-based figure was used three times as a planning fact, while the page's own audit says the split is not reproducible and gives 53.67% / 85.92% / 95.91% for three readings — i.e. path-based is somewhere between 4% and 46% | Accepted and fixed at all three sites. First use now carries the range; “roughly a fifth” is now “by the only published count, which is itself not reproducible”; the Open Question gives the range |
| 5 | “most of all — whether the crawler did anything on the page” and “the ordering of the results is the ordering of the interaction depth” are stated more confidently than §8 grants, and the confound is real: Moti et al.'s 38% is also the loosest definition, the latest year, and the single most tracking-heavy vertical | Accepted and fixed. “Plausibly most of all, though nobody has isolated it”, and the takeaway now names the confounds. This was already flagged in §8 as the most load-bearing unverified inference; the reviewer's contribution was noticing the page did not hedge it where a reader meets it |
| 6 | The year table's pre-2019 rows were vetted but its 2019–2026 rows were not, and the false-positive modes (CryptoAPI, GitHub Events API) do not expire in 2019 | Accepted and fixed by saying so: the page now states plainly that the 2019–2026 API-probe hits were not individually read, which is why the table is labelled an upper bound. The independent capi_product work in §2.2 came from the same concern |
| 7 | The methods table summarised the audit as “its released artefacts do not reproduce its own figures”, which is stronger than the audit shows — 6,314 and 403 reproduce exactly | Accepted and fixed to the supported claim: the released extension does not reproduce the released feature data, and two headline splits cannot be re-derived at all |
| 8 | This provenance page said “142 figures” while the guard output four lines below said 146 | Accepted and fixed, and it is the site's own recurring defect reproduced in miniature: prose written before a fix, output regenerated after it. The figure is regenerated from the script output on every build now |
| 9 | “All widths are printed above” was false — first_party_proxy (64) and tag_manager_any (48) appear only here | Accepted and fixed: the page now says the most relevant widths are in its table and all nine are here, and names the two it omits |
| 10 | “only 7 concern web tracking at all” overstates §5.1's own honest reading of 7 by the predicate, 5 on inspection, 2 that study SST | Accepted and fixed to exactly that |
| 11 | Two papers were described but not cited — “the gclid study at PETS 2026” and “the localhost web-to-app study at USENIX Security 2026” — on a page whose purpose includes telling the reader what to read | Accepted and fixed. Now [9Dao, Ha; Shinde, Abhishek; Athar, Sana; Gosain, Devashish (2026): "Clicking into Exposure: Uncovering Privacy Risks of Google Click Identifier in YouTube Ads", Proceedings on Privacy Enhancing Technologies 2026(2):92-107. (DOI)] and [10Vlummens, Tim; Girish, Aniketh; Weerasekara, Nipuna; Zuiderveen Borgesius, Frederik; Acar, Gunes; Vallina-Rodriguez, Narseo (2026): "Bridges to Self: Silent Web-to-App Tracking on Mobile via Localhost", in: Proceedings of the USENIX Security Symposium. (Link)]. The second key already existed in the bibliography, which is why the DOI-and-key scan runs before every append |
| 12 | Smaller: 40,199 cited after the audit corrects it to 40,198; “the residue is exactly the rows above” when _eu (99.8%) and _gid (98.9%) are also below 100%; “sixteen years” for 2010–2026; the committed EasyPrivacy output disagreeing with the version cited on the page; the 28-versus-389 distinction never spelled out | All accepted and fixed. The EasyPrivacy one was fixed by re-running the script and citing the version that run produced — which had already moved three times in half an hour, so the page now says so |
| — | Rejected: move “What SST Does to the Rest of Your Measurement” above the SST-Guard audit | A fair suggestion and a close call. Kept as is because the audit is what licenses the page to use SST-Guard's figures at all, and the reader who arrived from request classification meets the “your instrument is wrong” framing in the second paragraph of the page, not in that section. Recorded as a reasonable-person disagreement |
| — | Deferred to a human: “the authors were never told” about the 17-prefix expiry and the dead dl regex. The reviewer called publishing a public audit without notifying them the one thing it would not be comfortable with | Agreed, and not done here. Filing an issue on a third party's repository or emailing named researchers is an outward-facing action under someone else's identity, and no unsupervised run should take it. It is filed as a work item with the exact findings and the two contact routes, and this row exists so the omission is visible rather than quiet. Until it is done, that is a real deficiency of this page and not a technicality |
10.5 Re-verification pass against the frozen text (Sonnet)
All three focused reviewers found something and all three were acted on, so a narrow fifth pass re-checked each applied fix against the frozen page text and the re-run scripts, and then swept the whole page for any figure or status claim the fixes had made stale. That last part is the point: on this site the recurring defect is not the fix, it is the sentence three sections away that the fix contradicted.
All eight applied fixes verified CORRECT, each re-checked against the frozen page text and against a fresh re-run of the scripts, plus independent re-fetches of the CCS 2026 accepted-papers page, the PETS 2026 posters and call-for-posters pages, the arXiv HTML (by byte offset, to establish that “21.05%” falls inside §1 and not the abstract), the GitHub commit API, and the four cited papers' full texts. sst_number_guard.mjs passes and sst_quotecheck.mjs still reports 25 of 25.
No fix was found to have made another claim stale — which was the specific thing this pass existed to catch, and the reason it was run at all.
10.6 A rejected finding, and a correction to the shared tooling
The re-verification pass also ran scripts/check_tables.mjs and reported the content page's “Which signals a reader can actually reproduce” table as width-inconsistent (3/4/5). Running the same checker over both pages reports six inconsistent tables. All six are false positives, and the rendered DOM is the evidence: the content page renders 6 tables and this page renders 17, and every one of the 23 has a single cell count per row.
The checker counts every | and ^ character in a row after stripping wikilinks. Its own header comment says a literal pipe in a cell breaks the table. Measured on 2026-08-21, that is not true of a pipe or a caret inside inline monospace:
| Source | Renders as |
|---|---|
| Table 1 | ''''Cloaked trackers | 474 | 389'''' | | two cells, the second being <code>Cloaked trackers | 474 | 389</code> |
a cell containing /^GA1\.[123]...$/ | one cell, caret intact |
So the delimiters are resolved before inline markup is parsed, and content inside inline monospace is safe. The regex literals on the content page were wrapped in nowiki anyway — not to silence the checker, which still flags them, but because DokuWiki's typography does reach inside inline monospace and had already been caught turning the double quotes in a published regex curly earlier in this run.
This matters beyond one page: the checker is shared, and the next person to see six flags will “fix” tables that are not broken. Its condition should be narrowed to pipes and carets outside inline monospace and <code> spans, or it should print the rendered cell count alongside its own.
11. Run log
| When | What |
|---|---|
| 2026-08-21 | Read data/extract/OVERVIEW.md and README.md; ran sitemap.mjs; exported and read eleven neighbouring pages to decide create-versus-extend |
| 2026-08-21 | Read both PETS 2024 papers in full from paper.cols.txt |
| 2026-08-21 | Fetched and read the SST-Guard preprint; cloned the repository; unpacked and audited the shipped extension and the 306 MB released CSV |
| 2026-08-21 | Wrote and ran the six scripts in §3; iterated the corpus report three times (the first version counted 63 sweep hits without splitting off the 56-paper residue, and would have let the page imply the extraction schema covers SST) |
| 2026-08-21 | Appended 8 bibliography entries; DOI-scanned first, so no duplicate key and no second entry for a paper already present. Two further bibliography edits during review: mertens2026_gtm corrected from @misc to @inproceedings (CCS 2026), and bekos2025_piixel added |
| 2026-08-21 | Published privacy:server_side_tracking (rev 1787293685); linked it from start (rev 1787293733) |
| 2026-08-21 | The rendered page initially showed only 5 of 13 references. bibtex4dw caches the bibliography, so newly added keys render as inline markers with no entry. Fixed by requesting ?purge=true on literature:bibliography and then on the page; re-verified 13 of 13 |
| 2026-08-21 | Four-reviewer pass (§10); fixes applied; this provenance page published |
| Housekeeping | Value |
|---|---|
| Accidental exposure | None. All credentials stayed in .env. The GitHub, arXiv, HAL, Crossref, DBLP, SIGSAC and PETS endpoints were all called unauthenticated; no authenticated request was made to any third party, and nothing from this workspace was sent anywhere |
| Third-party load | One shallow git clone (37 MB) and one EasyPrivacy download (1.5 MB), plus a handful of metadata API calls. No crawl of anyone's website was run |
| Process mistake worth repeating out loud | Fixes were applied to the live page while the third focused reviewer was still running, which risks the reviewer reporting a fix as an error. The right order is freeze, review, then apply — the same mistake the privacy:requests run recorded, made again here |
Models. The run was driven by Claude Opus 4.5. Review: three focused passes on Sonnet, one generic pass on Fable, per this site's convention.
Mistakes caught in review of my own work, before the reviewers saw it. (1) The page first said the wide detection[] sweep returned 45 papers “of which all but three are unrelated”; the script says 63 and 56, and the sentence was written from memory of an earlier run rather than from the output. It is exactly the failure mode the “never carry a number over” rule exists for. (2) The first sst_quotecheck.mjs run reported 9 of 23 quotes as unlocatable; all nine were column-interleaving artefacts or curly-apostrophe mismatches, not quoting errors, and treating that first result as real would have produced a page that under-quoted its own sources. (3) The first sst_guard_datacheck.mjs run reported the Combined Classifier as firing on 0 of 403 ground-truth domains — a CRLF artefact in the released CSV's last column, not a defect in the release. It is 396 of 403. Had that shipped it would have been a false accusation against another group's artefact, which is the worst kind of error this page could make.
References
- [1]
- Bekos, Paschalis; Papadopoulos, Panagiotis; Kourtellis, Nicolas; Polychronakis, Michalis (2025): "PIIxel Leaks: Passive Identification of Personally Identifiable Information Leakage through Meta Pixel", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. (DOI)
- [2]
- Dimova, Yana; Acar, Gunes; Olejnik, Lukasz; Joosen, Wouter; Van Goethem, Tom (2021): "The CNAME of the game: Large-scale analysis of DNS-based tracking evasion", Proceedings on Privacy Enhancing Technologies 2021:394–412. (DOI) (Link)
- [3]
- Fouad, Imane; Santos, Cristiana; Laperdrix, Pierre (2024): "The Devil is in the Details: Detection, Measurement and Lawfulness of Server-Side Tracking on the Web", Proceedings on Privacy Enhancing Technologies 2024(4):450-465. (DOI)
- [4]
- El fraihi, Asmaa; Amieur, Nardjes; Rudametkin, Walter; Goga, Oana (2024): "Client-side and Server-side Tracking on Meta: Effectiveness and Accuracy", Proceedings on Privacy Enhancing Technologies 2024(3):431-445. (DOI)
- [5]
- Jazlan, Muhammad; Gamero-Garrido, Alexander; Shafiq, Zubair; Vekaria, Yash (2026): "SST-Guard: Detecting and Characterizing Server-Side Google Analytics in the Wild". Preprint, arXiv v1 of 30 April 2026; also presented as a poster at PETS 2026, which states that posters "will not be peer-reviewed". Not peer-reviewed as of 21 August 2026 (DOI)
- [6]
- Weerasekara, Nipuna; Moreno, José Miguel; Matic, Srdjan; Reardon, Joel; Tapiador, Juan; Vallina-Rodríguez, Narseo (2025): "Tracking Without Borders: Studying the Role of WebViews in Bridging Mobile and Web Tracking", Proceedings on Privacy Enhancing Technologies 2025(4). (DOI)
- [7]
- Dao, Ha; Mazel, Johan; Fukuda, Kensuke (2021): "CNAME Cloaking-Based Tracking on the Web: Characterization, Detection, and Protection", IEEE Transactions on Network and Service Management 18(3):3873-3888. (DOI)
- [8]
- Mertens, Gilles; Bielova, Nataliia; Roca, Vincent; Bouhoula, Ahmed; Akassab, Marouane (2026): "Detecting and Measuring Client- and Server-Side Google Tag Manager and its Tags in 80K Websites", in: Proceedings of the ACM SIGSAC Conference on Computer and Communications Security. Accepted at CCS 2026 (verified on the SIGSAC accepted-papers list, 21 August 2026); to appear. Preprint at HAL hal-05466083v2, submitted 6 February 2026, under the title "An Analysis of Client- and Server-Side Google Tag Manager and its Tags on the Web" (Link)
- [9]
- Dao, Ha; Shinde, Abhishek; Athar, Sana; Gosain, Devashish (2026): "Clicking into Exposure: Uncovering Privacy Risks of Google Click Identifier in YouTube Ads", Proceedings on Privacy Enhancing Technologies 2026(2):92-107. (DOI)
- [10]
- Vlummens, Tim; Girish, Aniketh; Weerasekara, Nipuna; Zuiderveen Borgesius, Frederik; Acar, Gunes; Vallina-Rodriguez, Narseo (2026): "Bridges to Self: Silent Web-to-App Tracking on Mobile via Localhost", in: Proceedings of the USENIX Security Symposium. (Link)
