Browsers Eat Data Quality
For BREAKFAST
@SimoAhava from @8_bit_sheep at #SPWK
Browser
Tracking
Prevention
www.CookieStatus.com
Quick	quiz
https://blog.superweek.hu/welcome.html
SOURCE TARGET
https://shop.superweek.hu/image.jpg
HTTP request includes cookies written on which domain: SOURCE or TARGET?
HTTP GET
https://blog.superweek.hu/welcome.html
SOURCE TARGET
https://shop.superweek.hu/image.jpg
Is this an example of 3RD PARTY REQUEST or 1ST PARTY REQUEST?
HTTP GET
Cross-site tracking
Graphic adapted from https://web.dev/samesite-cookies-explained/
https://www.simoahava.com/
Graphic adapted from https://web.dev/samesite-cookies-explained/
Same-site === First-party context
https://www.simoahava.com/
Graphic adapted from https://web.dev/samesite-cookies-explained/
https://image.cdn.com/image.gif
https://www.simoahava.com/
Graphic adapted from https://web.dev/samesite-cookies-explained/
Cross-site === Third-party context
https://image.cdn.com/image.gif
https://www.simoahava.com/
Graphic adapted from https://web.dev/samesite-cookies-explained/
https://page.somedomain.com/
https://page.otherdomain.com/
https://page.thirddomain.com/
https://image.cdn.com/image.gif
All pages include a request to the third-party resource, thus including
all cookies written on the third-party domain, enabling cross-site tracking.
Some popular exploits
Leverage other script-writable storage.
Decorate outbound links with identifiers.
Decorate referring URL with identifiers.
Stateless tracking with fingerprints.
Third-party-to-first-party collusion, e.g. with CNAME.
Browsers take the initiative
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
2013
Partitioned
and
ephem
eral3P
H
TM
L5
storage
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
ITP
1-Algorithm
ic
classification,3P
cookies
partitioned
2013
Partitioned
and
ephem
eral3P
H
TM
L5
storage
9/2017
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
ITP
1-Algorithm
ic
classification,3P
cookies
partitioned
2/2018
Storage
Access
APIto
allow
access
to
partitioned
storage
2013
Partitioned
and
ephem
eral3P
H
TM
L5
storage
9/2017
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
ITP
1-Algorithm
ic
classification,3P
cookies
partitioned
2/2018
Storage
Access
APIto
allow
access
to
partitioned
storage
ITP
2
-Rem
ovalof24-hourgrace
period
forunrestricted
3P
cookie
access,
1P
bounce
trackerand
trackercollusion
protection
2013
Partitioned
and
ephem
eral3P
H
TM
L5
storage
9/2017 9/2018
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
ITP
1-Algorithm
ic
classification,3P
cookies
partitioned
2/2018
Storage
Access
APIto
allow
access
to
partitioned
storage
ITP
2
-Rem
ovalof24-hourgrace
period
forunrestricted
3P
cookie
access,
1P
bounce
trackerand
trackercollusion
protection
2013
Partitioned
and
ephem
eral3P
H
TM
L5
storage
ITP
2.1-3P
cookies
no
longerpartitioned,restrictions
on
1P
JavaScriptcookies
9/2017 9/2018 3/2019
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
ITP
1-Algorithm
ic
classification,3P
cookies
partitioned
2/2018
Storage
Access
APIto
allow
access
to
partitioned
storage
ITP
2
-Rem
ovalof24-hourgrace
period
forunrestricted
3P
cookie
access,
1P
bounce
trackerand
trackercollusion
protection
2013
Partitioned
and
ephem
eral3P
H
TM
L5
storage
ITP
2.1-3P
cookies
no
longerpartitioned,restrictions
on
1P
JavaScriptcookies
4/2019
ITP
2.2
-1P
JavaScriptcookies
lim
ited
to
24-hourexpiration
in
som
e
cases
9/2017 9/2018 3/2019
9/2019
ITP
2.3
-Allscript-w
ritable
storage
gets
lim
ited
lifetim
e,
docum
ent.referrerfrom
classified
dom
ain
stripped
to
eTLD+1
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
ITP
1-Algorithm
ic
classification,3P
cookies
partitioned
2/2018
Storage
Access
APIto
allow
access
to
partitioned
storage
ITP
2
-Rem
ovalof24-hourgrace
period
forunrestricted
3P
cookie
access,
1P
bounce
trackerand
trackercollusion
protection
2013
Partitioned
and
ephem
eral3P
H
TM
L5
storage
ITP
2.1-3P
cookies
no
longerpartitioned,restrictions
on
1P
JavaScriptcookies
4/2019
ITP
2.2
-1P
JavaScriptcookies
lim
ited
to
24-hourexpiration
in
som
e
cases
9/2017 9/2018 3/2019
9/2019
ITP
2.3
-Allscript-w
ritable
storage
gets
lim
ited
lifetim
e,
docum
ent.referrerfrom
classified
dom
ain
stripped
to
eTLD+1
All3P
requests
(non-navigational)getreferrer
stripped
to
origin,all3P
cookies
blocked
if
site
notinteracted
w
ith
in
1P
context
2003
Defaultcookie
policy
blocks
3P
cookies
w
ithoutprior"seeding"
9/2017
ITP
1-Algorithm
ic
classification,3P
cookies
partitioned
3/2018
Storage
Access
APIto
allow
access
to
partitioned
storage
9/2018
ITP
2
-Rem
ovalof24-hourgrace
period
forunrestricted
3P
cookie
access,
1P
bounce
trackerand
trackercollusion
protection
2013
Partitioned
and
ephem
eral3P
H
TM
L5
storage
3/2019
ITP
2.1-3P
cookies
no
longerpartitioned,restrictions
on
1P
JavaScriptcookies
4/2019
ITP
2.2
-1P
JavaScriptcookies
lim
ited
to
24-hourexpiration
in
som
e
cases
12/2019
ETP
introduced
-3P
tracking
cookies
blocked
ifactivated
10/2018
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
ETP
introduced
-3P
tracking
cookies
blocked
ifactivated
ETP
m
odes
introduced
-Standard
is
the
default
10/2018
1/2019
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
ETP
introduced
-3P
tracking
cookies
blocked
ifactivated
ETP
m
odes
introduced
-Standard
is
the
default
ETP
released
-Standard
seton
fornew
installs
10/2018
1/2019
6/2019
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
ETP
introduced
-3P
tracking
cookies
blocked
ifactivated
ETP
m
odes
introduced
-Standard
is
the
default
ETP
released
-Standard
seton
fornew
installs
10/2018
1/2019
6/2019
ETP
setto
Standard
forallusers
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
10/2018
1/2019
6/2019
Brave
Shields
released
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
10/2018
1/2019
6/2019
Brave
Shields
released
Restrictions
to
fingerprinting
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
10/2018
1/2019
6/2019
Brave
Shields
released
Restrictions
to
fingerprinting
Im
proved
ad
blockeralgorithm
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
10/2018
1/2019
6/2019
Brave
Shields
released
Restrictions
to
fingerprinting
Rem
ove
know
n
tracking
param
eters
from
U
RLs
Im
proved
ad
blockeralgorithm
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
10/2018
1/2019
6/2019
Tracking
prevention
(Edge
beta)blocks
cookies
from
know
n
trackers
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
10/2018
1/2019
6/2019
Tracking
prevention
(Edge
beta)blocks
cookies
from
know
n
trackers
(Edge
beta)adds
additionalm
itigations
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
10/2018
1/2019
6/2019
Tracking
prevention
(Edge
beta)blocks
cookies
from
know
n
trackers
(Edge
beta)adds
additionalm
itigations
1/2020
N
ew
Edge
released
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
10/2018
1/2019
6/2019
1/2020
Cliqz
introduces
its
ow
n
ad
blocking
tech
11/2019
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
11/201910/2018
1/2019
6/2019
1/2020
Sam
eSite
enforcem
ent*
* not a tracking protection mechanism
2/20209/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
11/201910/2018
1/2019
6/2019
1/2020 2/2020
Sam
eSite
enforcem
ent
2022
N
o
m
ore
3P
cks
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
11/201910/2018
1/2019
6/2019
1/2020 2/2020 2022
GDPR enforceable
Collection #1 breach
773M unique emails
verifications.io breach
763M unique emails
People Data Labs breach
622M unique emails
Zynga breach
172M unique emails
Onliner Spambot breach
711M emails
Exploit.ln breach
593M emails
Finland wins
hockey world
championship
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
GDPR enforceable
Collection #1 breach
773M unique emails
verifications.io breach
763M unique emails
People Data Labs breach
622M unique emails
Zynga breach
172M unique emails
Onliner Spambot breach
711M emails
Exploit.ln breach
593M emails
Finland wins
hockey world
championship
11/201910/2018
1/2019
6/2019
1/2020 2/2020 2022
Increasing amount of supply chain attacks (e.g. Magecart) and script hijacking
9/20192003 9/2017 3/2018 9/20182013 3/2019 4/2019 12/2019
Impact
Build graphs and comprehensive audience profiles
Build graphs and comprehensive audience profiles
Target ads
Target ads
Manage ad frequency
Build graphs and comprehensive audience profiles
View-through attribution
Manage ad frequency
Build graphs and comprehensive audience profiles
Target ads
Manage ad frequency
Build graphs and comprehensive audience profiles
Cookie matching/syncing
View-through attribution
Target ads
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
State in embedded services
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
State in embedded services
Multi-purpose scripts
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
State in embedded services
Multi-purpose scripts
1st party data collection
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
State in embedded services
Multi-purpose scripts
1st party data collection
Tag management
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
State in embedded services
Multi-purpose scripts
1st party data collection
Tag management
Client-side state
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
State in embedded services
Multi-purpose scripts
1st party data collection
Tag management
Client-side state
Data quality
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
State in embedded services
Multi-purpose scripts
1st party data collection
Tag management
Client-side state
Data quality
Manage ad frequency
Build graphs and comprehensive audience profiles
Cross-site tracking
Cookie matching/syncing
View-through attribution
Target ads
Analytics integrations
SSO / login flows
State in embedded services
Multi-purpose scripts
1st party data collection
Tag management
Client-side state
Data quality
Classification of "known trackers"
Algorithmic, on-device Heuristic, global
3rd party context
Block Restrict
Brave
3rd party context
Strips all cookies from 3P
requests.
Blocks all requests to
domains in filter lists.
Strips cross-site referrers
in navigational requests.
Spoofs cross-site referrers
in subresource HTTP requests.
Strips fbclid, gclid, msclkid, mc_eid
parameters from request URLs.
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers, request URLs
Chrome - -
Cliqz
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers
Chrome - -
Blocks cookies in 3P
context if target domain
is classified (on-device
and/or globally), with
mitigations (widget inter-
actions, redirects, oAuth
flows).
Other cookies set to 1h
expiration if no interaction
with site in 1P context.
Strips potential user identifiers
from request URLs, unless in
global safe set.
Downgrades referrer to origin
in cross-origin requests.
Cliqz
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers, request URLs
Chrome - -
Cliqz Cookies Cookies, referrers, request URLs
Edge
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers
Chrome - -
Cliqz Cookies Cookies, request URLs
Edge
Blocks cookies in 3P
requests if target domain
in Trust Protection Lists,
with mitigations for
engagement and same-org.
Blocks all script-writable
storage with same
conditions as above.
Blocks requests to
Fingerprinting and
Cryptomining domains.
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers, request URLs
Chrome - -
Cliqz Cookies
Edge
Firefox
Cookies, storage, requests -
Cookies, referrers, request URLs
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers
Chrome - -
Cliqz Cookies Cookies, request URLs
Edge Cookies, storage, requests -
Firefox
Blocks cookies in 3P
requests if target domain
classified in Disconnect.me.
Blocks requests to
Cryptomining category.
Blocks requests if domain
in Fingerprinting and
Tracking category.
Blocks localStorage and
IndexedDB for classified
domains.
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers, request URLs
Chrome - -
Cliqz Cookies
Edge Cookies, storage, requests -
Firefox Cookies, storage, requests -
Safari
Cookies, referrers, request URLs
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers, request URLs
Chrome - -
Cliqz Cookies Cookies, request URLs
Edge Cookies, storage, requests -
Firefox Cookies, storage, requests -
Safari
Blocks cookies if no prior
cookies set.
Blocks cookies if no
interaction with site in 1P.
Blocks cookies if
classified by ITP (except
with Storage Access API).
Blocks IndexedDB.
Partitioned and ephemeral
localStorage.
Downgrade referrer to origin
on subresource HTTP requests.
Downgrade referrer to eTLD+1
if referring page classified with
URL decoration.
Block Restrict
Brave
3rd party context
Cookies, requests, referrers Referrers, request URLs
Chrome - -
Cliqz Cookies
Edge Cookies, storage, requests -
Firefox Cookies, storage, requests -
Safari Cookies, storage Referrers, storage
Cookies, referrers, request URLs
1st party context
Block Restrict
Brave
1st party context
Cookies set with JavaScript
expire in 7 days.
Cookies set with HTTP headers
expire in 6 months.
Block Restrict
Brave
1st party context
- Cookies
Chrome - -
Cliqz
Block Restrict
Brave
1st party context
Cookies, requests, referrers Referrers
Chrome - -
Non-HttpOnly cookies expire
in 7 days.
HttpOnly cookies expire in 30
days.
Cookies set on classified
domains that are visited
infrequently expire in 7 days.
Cookies set on classified
domains that are visited
frequently expire in 30 days.
Cliqz
Block Restrict
Brave
1st party context
- Cookies
Chrome - -
Cliqz - Cookies
Edge - -
Firefox - -
Safari
Block Restrict
Brave
1st party context
Cookies, requests, referrers Referrers, request URLs
Chrome - -
Cliqz Cookies Cookies, request URLs
Edge Cookies, storage, requests -
Firefox Cookies, storage, requests -
Safari
Cookies set with JavaScript
expire in 7 days.
Cookies set with JavaScript
when referring domain is
classified and URL has link
decoration expire in 24 hours.
Other browser storage is
expired in 7 days since last
interaction if referring domain
is classified and URL has
link decoration.
Block Restrict
Brave
1st party context
- Cookies
Chrome - -
Cliqz - Cookies
Edge - -
Firefox - -
Safari - Cookies, storage
Bubbling under
Brave Chrome Cliqz Edge Firefox Safari
Cookies set to SameSite=Lax by default.
Reject SameSite=None cookies that are not secure.
Chrome 80, Feb 4!
Brave Chrome Cliqz Edge Firefox Safari
Default referrer policy strict-origin-when-cross-origin.
Chrome 80, Feb 4!
! !!
Cap lifetime of all script-writable storage.
Brave Chrome Cliqz Edge Firefox Safari
Technology Preview 99
Brave Chrome Cliqz Edge Firefox Safari
Technology Preview 99
Block all cookies in 3P context - access only through Storage Access API.
!
Brave Chrome Cliqz Edge Firefox Safari
Technology Preview 99
The isLoggedIn API (experimental).
Brave Chrome Cliqz Edge Firefox Safari
Private Click Measurement / Ad Click Attribution.
DO’s and DON’Ts
DO
-Periodically audit the use of client-side state in your sites, services, and applications. Avoid
over-reliance; use HttpOnly where possible, then HTTP headers, then JS.
-Figure out how to incentivize logging in.
-Set cookies you need in third-party context to SameSite=None;Secure, with fallbacks
for unsupported browsers.
- Utilize Storage Access API for access to third-party storage.
-Consider the browser as a manifestation of the user’s desire and intent with regard to
tracking. Err on the side of as much privacy as possible.
-No evil.
DO	NOT
-Look at "server-side analytics" as a silver bullet.
-Ignore small market share web browsers.
-Expect tracking prevention development to settle / slow down.
-Spread FUD about the impact of these measures without empirical data to back it up with.
-Expect that browsers will handle the ethical / legal side of data collection for you.
-Think that browsers have got tracking prevention "right"
Follow and participate
@BrendanEich
@EricLaw
@JohnWilander
@JustinSchuh
@Log3OverLog2
@pes10k
@RandomnessnCats
@SimoAhava
@TheZEdwards
bit.ly/privacy-sandbox
brave.com/blog
chromestatus.com/features
cookiestatus.com
cunderwood.dev
haveibeenpwned.com
panopticlick.eff.org
webkit.org/blog
webkit.org/tracking-prevention-policy
bit.ly/ad-click-attribution
bit.ly/privacycg
bit.ly/privacy-ig
log(`Thank you, ${yourName}`)

Browser Tracking Protections - SuperWeek 2020