And for what you can't, a banner asking for permission to run Javascript, like we have/had for Java/Flash/ActiveX
The experience is “I clicked no and nothing worked” vs “I clicked yes and the site worked”.
I get that you don’t like it, but the reality is that the web is a platform that includes JS as a core technology. The reason for limiting java and activex was because they had catastrophically terrible security properties more or less by design.
Even flash had problems, but was sensible enough to correct many deficiencies and defer to the browser for interaction with anything outside of its view. Which is why you weren't asked about running flash on every website you went to. JS and the various web/html/dom APIs all have much much stricter constraints than anything flash had - they are designed to be safe in spite of all content being untrusted.
More over dialogs like that are largely recognized among browser developers as being a form of blame shifting - a regular user has no reasonable way to determine whether or not saying “yes” is safe. The purpose of asking them, is so that if something does go wrong you can say “they shouldn’t have clicked yes”.
> The experience is “I clicked no and nothing worked” vs “I clicked yes and the site worked”.
I agree; but the extra click may be an insentive for web developpers to try not to use JS.
> Which is why you weren't asked about running flash on every website you went to.
Firefox did ask about running Flash, because "attackers can also use the security flaws in Flash": https://support.mozilla.org/en-US/kb/set-adobe-flash-click-p...
> they are designed to be safe in spite of all content being untrusted
But they have flaws, like Flash.
yes, @media queries for example that trivially let the site fingerprint you again.
And even then that's far from enough to stop fingerprinting. Ordering of http headers has been used to fingerprint browsers. The <picture> element can be used to leak browser screen size. CSS can leak information in @media and @support queries by requesting specific images. It's even possible to create "DNS cookies".
More: http/2 passive fingerprinting: https://www.akamai.com/us/en/multimedia/documents/white-pape... Fingerprinting servers based on header order: http://www.net-square.com/httprint_paper.html#httpheader List of CSS Media queries, including vendor specific ones: https://browserleaks.com/css DNS Cookies Demonstration: http://dnscookie.com/
Yet still sites continue to use the user agent to gate access. The same sites also like to complain about how bizarre UA strings are.
Compared to cookies in the request.
Time stamps in the request and the tls header.
IP address, etc etc
People vastly overestimate the value of those data in the UA