The Watched Web
A free, hands-on course on how the web tracks people, and how to stop it. Read what a practice tracker learns, watch browser defences break it, build a blocker, and measure the privacy you win. All in your browser, against practice sites.
Your practice world is ready in this tab.
No install, no account, no setup. The first lessons need no code at all: you watch a tracker at work on practice sites, then answer a few questions. Code comes later, one small step at a time.
Daily review
Spaced repetition keeps what you learned from fading.
What a website knows the moment you arrive
Look at any web page and say what it learned about your device, network, location and the page you came from before you clicked anything.
Cookies, properly explained
Read any cookie, say who can see it and for how long, and explain how SameSite, partitioning and your browser's defaults limit tracking.
Fingerprinting: tracking without cookies
Explain how a browser can be recognised with no stored ID, estimate how identifying a trait is, and choose defences that really help.
Pixels, beacons, apps and the invisible web
Recognise tracking that works without third-party cookies, from pixels and hidden scripts to hashed emails, apps, TVs and ad auctions, and switch off the main channels.
Consent, dark patterns and taking back control
Spot dark patterns in consent banners, read a privacy policy for what matters, and switch off the main tracking channels on your own devices and accounts.
HTTP from the inside
Read raw HTTP the way a browser does, and write your own parsers for requests, headers, cookies, a rule-following cookie jar, a link cleaner and a redirect-chain logger in plain Python.
Inside a tracker (in the practice world)
Read what a ready-made practice tracker learns about one shopper, and measure which browser defences break it.
Build a blocker
Build a working tracker blocker in Python, from filter lists and fast matching to heuristics, link cleaning and fingerprint defences, and measure how well it does.
Measure privacy, honestly
Measure how identifiable people are in a dataset, show why removing names and hashing emails fail, apply real defences, and report a full tracker-and-blocker experiment as checkable numbers.
Script injection (XSS)
Explain how untrusted text turns into running script, find it on practice pages, and fix it with correct escaping, HttpOnly session cookies and templates that escape by default.
Content Security Policy and framing
Read any Content Security Policy, write one that blocks injected scripts without breaking your page, roll it out safely with nonces, report-only and Trusted Types, stop clickjacking with frame-ancestors, and audit a policy with a repeatable score.
Third parties on your own site
List every outside service your site loads, decide which to self-host, load on click or keep, and lock down the rest with SRI, Permissions-Policy and Referrer-Policy.
Privacy by design
Design a site that collects less, counts visits without tracking people, protects what it keeps, deletes on schedule, and prove it by taking a practice shop from F to A.
Encryption you can explain
Explain in plain words what symmetric and public key encryption, HTTPS, end-to-end encryption, signatures, passkeys, encrypted DNS and VPNs each protect, and verify a signed message in Python.
Private AI
Explain where AI prompts go, use on-device models, redact personal data in Python before text leaves the device, and choose private-by-default AI features for your own product.
Threat modelling
Write a one-page threat model for a person or a product, check a product's data flows in Python, respond calmly to a data leak, and build a rubric-checked threat model of a product you use.
Packets, DNS and IP addresses
Explain what each network layer, DNS lookup and IP address reveals and to whom, measure how stable an IP-based ID really is, and model exactly what a VPN, a two-hop relay and Tor each hide.
Network fingerprints
Read a TLS ClientHello and an HTTP/2 opening, compute JA3 and JA4-style fingerprints from simulated handshakes, and measure how far IP addresses and network fingerprints can link a person once cookies are blocked.
Apps and devices
Read a captured log of phone app and smart TV traffic and report every company, identifier and kind of data it reveals, while knowing what such a log cannot show.
How a browser decides
Work out which site any URL belongs to, and explain how browser engines partition storage, close side channels, grant storage access, stop bounce tracking and decide what counts as a tracker.
Build the defences
Build the defences a privacy-first browser engine needs (partitioning, Storage Access, bounce purging, farbling and link cleaning) and tune them against a breakage budget.
Tracking the person, not the device
Measure how typing, writing style, shared devices and broker records identify a person, and choose the defences that break those links.
Privacy tech beyond blocking
Explain and build small teaching versions of differential privacy, Private Set Intersection and secure aggregation, explain Privacy Pass and Oblivious HTTP, and choose the right technique for a product problem.
Anonymity networks and traffic analysis
Explain what each relay in an onion-routing circuit knows, show with simulated flows how timing and page shapes leak through encryption, measure what padding and constant-rate sending cost, and give honest advice on when Tor helps.
Measure the web like a researcher
Crawl a simulated web of 1,000 sites, build a tracker-prevalence table, find cloaked, bouncing and fingerprinting trackers, train and fairly score a tracker classifier, and write up a measured privacy fix with honest limits.
Capstone: choose one project
Choose one capstone project that fits what you want to show, scope it so it finishes, aim it at what the hidden world checks, and write up its results honestly.
Review and certificate
Review the legs you completed, prove what you learned in a 20-question scenario check, and claim a certificate you can share safely.
Only you can print or save these. The links are saved in this browser. To show someone, share the verify link from the certificate.