The Original Cookie specification from 1997 was GDPR compliant (2019)
baekdal.com
baekdal.com
We develop an open-source consent manager (https://klaro.kiprotect.com) and considered implementing the IAB framework, after seeing how it works we decided not to though as we don't want to support privacy-invasive approaches.
That said players like Google also use privacy as a strategic tool to force other players out of the ad market. Since Google can easily get first-party cookies into > 95 % of all browsers they won't be impacted by the restriction of third-party cookies. As most users go through their site many times per day they also have enough other signals they can use to track people without relying on cookies (user agent, IP address and a little Bayesian statistics is sufficient if you see enough traffic). They will probably continue to remove tracking capabilities that they don't need anymore from Chrome to slowly suffocate any remaining competitors that still rely on them.
What makes our consent manager stand out is that it records all attempted tracking events and can replay the events later once consented. This helps site owners capture the entire user journey through their site.
Locally? While clever, I can't imagine how this would be GDPR-compliant when stored on (no matter whose) server side ...
https://github.com/kiprotect/klaro
It uses Preact and a few JS helper libraries and includes translations for more than 10 languages currently. It also includes styles by default (though you can get a version without styles). The compressed size is 37 kB which I think is reasonable, smaller is of course better. We haven't prioritized size for now as it's comparable to a PNG/JPG and usually negligible on most sites, we might look into this in the future though.
I always suspected this and mistrusted those opt-out tools, but I never had any evidence for it. Would you mind elaborating?
e.g. AppNexus is also on the page, and they have a deal with DoubleVerify, AppNexus can read the list of people you've agreed to tracking from that the publisher sent them, see DoubleVerify in that list and assume they can (in the opinion of the IAB) share your data that was shared with them by the publisher or your browser, with DoubleVerify.
The presumed transitive consent to 1000s of entities is the bit I assume that the parent poster is objecting to especially when so many of those modals are "default-accept", "we hid the reject button in three child links in the middle of legal text" etc., but I'm not sure why IAB's in particular is worse than others such as the parent poster's.
Two small notes:
- The Multilingual examples don't seem to work for me using the latest Firefox. The displayed form is always shown in English.
- The folder with example configs doesn't actually seem to contain anything other than an i18n file
Also, is there a function I can call in Javascript code to check if I have permission to set a certain type of cookie?
Another consequence, there would be more server to server communications because the first party server could send all sort of information to the servers that are setting third party cookies in pages now. The focus of privacy policies would be there.
Probably no way to implement OAuth.
Or with session ID in URL. It's a valid mechanism - works reliably, is fast, and doesn't require special support in browsers. Remember the '?PHPSESSID=...' littered all over the early internet? Yeah that one.
Of course there are some caveats, which made cookies win in the end:
* it must be applied to every internal link in the website
* it's equivalent of a "session cookie" (no persistence after browser is closed)
* it's a privacy risk when sharing the URL via copy/paste
* it's subject to 'session fixation' attack (related to the previous caveat)
Presumably the last two could be fixed by an extra HTTP header or special in-browser handling of a designated parameter, similarly to how CORS got handled.
How am I aware of them? I was a fact witness in these cases, and the reason I was a fact witness it that my employment agreement with Cadabra Inc., later to become Amazon.com, contains an addendum describing this technique and specifying that the company cannot attempt to patent it, since I had already implemented it while working at UWashington CS&E.
Apparently this was still not sufficient for the jury in one of the cases. Edit: none of the cases were solely about a session identifier, so to be a little fair to the final jury, it's not quite that simple.
I did something similar to this in the early 2000s, when setting a cookie lasting longer than 24h required approval from SECDEF: [0]
This was a cookie-less FTP-over-HTTP browser, where you had to agree to the terms of service, and copying the link to someone else wouldn't mean they agreed to the terms of service. It was just a prototype.
Intranet web apps didn't even require a manual login, now we've regressed and have more web apps, frequently less AD authentication (cloud apps) and more random passwords written on post it notes.
not exactly. a site can't set basic auth for you, which means you would have to log in before adding something to your cart. whereas with cookies, you can add to your cart before having to authenticate in any way. Now, as long as javascript is enabled, there are other ways to handle that, such as local storage. But that is relatively recent.
It was later realized that session IDs in the URL led to lots of security problems, but it's possible we would've come up with ways to mitigate those if cookies hadn't become widespread.
I do recall that in early implementations of cookies in web browsers, they were disabled by default. But when a website wanted to set a cookie, a prompt would appear. Actually, this might have just been the configuration of some of the shared computers I was using at the time at school and in other places.
https://dl.acm.org/doi/10.1145/365024.365034 has a number of screenshots from early browsers, Netscape 1-4 and IE 3-5. All had cookies enabled by default, apparently.
I might be thinking of the cookies prompts in Links and Lynx text mode browsers, as I tended to use those more often back then over dialup. The cookie prompts in general were terrible because you never knew what part of the site would be enabled or disabled before interacting with the site. To that end, Safari’s approach is quite reasonable for a default.
Another HTTP header, X-Session-Expiration, would have been added to expire sessions.
/s
I imagine the page would need to also use some sort of dictionary-based compression for efficient transfer of the page if it has many links on it. ;-)
On the plus side, you wouldn’t need megabytes of cookies...
That probably would've been added...
... and then we'd have essentially a single cookie per domain with wholly different higher-level semantics (user control through a password manager.) That ... actually sounds preferable?
http://username:password@example.com
Not sure if that works via 301/302 redirects - I think it might - but most/all browsers warn that there's a username/password in the url?
Also, how does a fingerprint, (something already capable of being deanonymized), being put through a trapdoor function (some think specifically used universally for purposes of authentication), generally arrive at making a mechanism that isn't being hijacked for tracking purposes? That's where you end up running into the fundamental problem of web traffic analysis.
As soon as you have enough information to reasonably assure you you're talking to the same person, someone else will come up out of nowhere to beg you to share it with them. You can make tons of money sharing this info, but by and large people object to you being loose-lipped about their business with strangers.
This is what makes me shake my head in wonder at the direction the Web went...
We already knew there was going to be an issue. We knew, because advertising/marketing/big data like info sharing did not exist; and where it did, it was generally in the customer's face, and they had something to gain, and not much to lose, and big, ponderous and unwieldy to do.
By letting advertising drive the direction the Web developed, we've turned the entire apparatus into the most effective surveillance device known to man.
You didn't have police looking up people's catalog or financial records before. You did have landlines being tapped on a case to case basis, but that's a big difference compared to Google's capacity to provide LE with suspect lists via geofenced warrants.
It saddens me sometimes we never got to see a Web without "user" abstractions. In the beginning it may have been close, but since the late nineties it's been far too close to a liability in terms of abusability by well positioned players for me to feel super happy about it.
And yet I've been developing stuff for it for 10+ years without pulling Stallman levels of sticking to my ideals... Hooray for being part of the problem.
The opposite would work better. Create a standard for tracking people then legally enforce that all tracking conforms to that standard. Then users can opt out.
It would be of more help if GDPR was enforced in a really painful way (to offenders). GDPR is not about cookies. It's about tracking without explicit consent. If offenders were fined into oblivion it would (hopefully) go away. Fingerprinting relies heavily on client-side Javascript, so attribution shouldn't be a problem.
But they also enabled some cool cross domain integrations. Guess we'll see js-based apis pick up the slack here.
It also doesn't stop SPAs from existing and not needing cookies.
Any website could implement cookies in a single window session this way, as long as you didn’t open more windows lol.
I remember writing scrappers in late 90s/early 00s and it was trivial.
I guess it's a feature now...
I know that's bad. I don't know how many things we are used to should work in such en environment, where users are trained to NOT consent to anything, cause consent is only needed for bad things they do NOT want.
You are event not allowed to tell a user: this will not work without consent.
I'm perplexed how any complex thing should work.
You can also use state for multiple purposes as long as you clearly list and identify those beforehand. You can't gather personal data and then suddenly sell or analyze it if you didn't tell your customers you'd be doing that with data. However, saying "we use this email address for (a) sending you news letters (b) letting you recover your password" is perfectly fine.
From my reading of the GDPR, you can even gather personal data without explicit informed consent if the data is absolutely necessary for your system to work. You do need to provide ways to update, delete or obtain all information in human-readable form, but explicit consent for something that anyone can understand is absolutely required for the thing to work can be collected. You can keep track of the contents of a shopping cart on a web shop, for example, but you can't submit the contents of that cart to your analytics backend without consent. You can, however, track the cart contents in your backend and link it to the users' account; only when you start processing the data in a way not strictly necessary will you need the user to provide informed consent.
The problem with GDPR is that most people encounter it in the form of tracking cookies and advertising, both of which are not absolutely necessary for any application to work, which is why they need informed consent. People think all cookies are now banned until further notice and that the mere existence of a database is now punishable by law, which is not the case. GDPR sucks, but only if you're in the business of collecting a lot of extraneous information about your customers and/or selling it (through analytics or ads, for example). Which, in my opinion, is a good thing.
some data protection officers think any two linked clicks are personally identifiable.
If have read the full cookie ruling, in some passages it's about "saving" (in all senses) any data without consent - yes it sometimes talks about personally identifiable but the "saving" part doesn't care.
To be clear, I don't think that, but it's hard to make our service comply if the customers (think webshop) data protection officers follows that semi official guideline
I don't think this claim is correct. GDPR requires complete transparency with how personal data is used and stored. Asking for permission just happens to be the safest/laziest way to be compliant.
But for the particular case of sharing data with thousands of third parties so that they can use it to target ads, consent seems to be the only one that applies. Direct marketing is one of the very few use cases explicitly listed in the GDPR, e.g. in the 21.2 'the right to object' - "Where personal data are processed for direct marketing purposes, the data subject shall have the right to object at any time to processing of personal data concerning him or her for such marketing, which includes profiling to the extent that it is related to such direct marketing."
You can't have consent without the assumption that there is a choice to be made, and that the choice is not yours to make, and that the one giving consent is aware of the choice. Anything with the characteristic of producing an implied voluntary choice without the chooser being aware the choice is being made is very specifically not consent.
False. You're not allowed to store data about the user for any amount of time longer than is required to provide the session/service.
Session cookies are explicitly allowed without consent. Even though many cookie consent popups imply that they are not ("cookies are required for this site to function"), that is a lie by the adtech industry (and ignorant webdevelopers).
Remember: They are NOT asking for permission to store session cookies--they don't need it. Every cookie consent popup is literally asking for permission to share tracking data with third parties. Even if they word it obscurely.
... but their thought process does generally include "Google and their data stores are a trusted repository."
Google's primary revenue model is ads, and yes; that implies a lot of products they make hook up through that revenue model. But the incentive structure isn't as simple as "ALL FOR ADS." Google still styles itself a search company (but search doesn't pay for itself) and, increasingly, a cloud service company.
It is when adding "... whenever a service gets really big and used a lot".
If Ngram search was super popular, you bet they'd put book ads there, or something.
https://lists.w3.org/Archives/Public/ietf-http-wg-old/1997Ja...
Wish more visibility cookie UI like was mentioned was possible.
My favourite pieces:
> But there is a compelling argument that compensation models based on clickthroughs or more are flawed because it encourages the content developer to focus exclusively on pushing people through the ad, rather than actually providing useful content. I'm sure many content sites would refuse to partake in this.
Yet here we are. I guess it was hard to predict, 23 years ago, just how insanely proftable this business model will become.
>> The bottom line is that WWW advertising is based on a business model which didn't even exist a couple of years ago. It is based on leveraging technology which is new and evolving. I am confident that it will evolve in response to improvements to the technology..
> The business model of sponsored content has been around forever. So have these privacy issues (...) Looking to technology for a solution to the privacy problems is as misguided as blaming technology for causing them.
The kind of nonsense Brian replied to here, that this business model is new and innovative, and thus somehow worth exploring... I swear I see these kind of arguments regularly even today.
I've set up several firefox containers for websites.
I'm now using two firefox profiles. My main profile has javascript disabled by default through ublock, except for some websites.
My second profile has javascript enabled by default, but I enabled a custom tougher blocklist with ublock (can't remember which). I use this second firefox profile for websites I don't really trust.
Even with all this, with the websites I'm using, I'm quite certain it's not enough.
Before the virus, I was at my mother's, and I admit that watching TV again (in europe) was not that bad. I'm starting to think that getting the news from the internet is now equally bad than watching TV.
About firefox containers: why can't firefox automatically compartmentalize cookies and such, by default? I've never understood why website A can read the cookies from website B. Ideally, there should be a setting to prevent such thing, even if it breaks some websites.
It breaks some websites according to Mozilla, so Firefox does not block them by default. Firefox's term for this is third-party cookies, and you can change your Firefox settings to block them (without using containers) - see https://support.mozilla.org/en-US/kb/disable-third-party-coo...
edit: the default settings block "cross-site tracking cookies" which is presumably different from "3rd party cookies", but I'm not exactly sure how.
I'm guessing they have a blacklist, probably a community one maintained by some ad blocking project. That strikes me as the only feasible way of telling apart good and bad uses of the same technology, but it unfortunately requires unending gruntwork.
Ad Blocker > Disable Javascript > Disable Cookies
It is simple with uMatrix and it just works. Click on * for global scopes, unselect 1st-party. Rules should be
* * * block
* * css allow
* * frame block
* * image allow
* 1st-party frame allow
Still can be tracked by third-party images and css with fingerprinting and IP address...Of course it does not matter once javascript allowed - youtube tracked me fine without cookies. Private browsing and uBlocks could help only so much.
About firefox containers - why where is no version for those who do not care about broken sites? It is certainly possible - code is there https://hg.mozilla.org/mozilla-central/ - would you use it? Would you build it?
I think TV ads are inherently less annoying than most web ads because, perhaps counterintuitively, they stop you from watching your show while the ad plays.
If I'm watching a TV show on say Hulu and an ad comes on the show is completely replaced by the ad and a little countdown timer appears in the upper left corner telling me how long until the show resumes.
I glance at the timer and then find something else to do for that amount of time. I might pick up my iPad and work on a New York Times crossword puzzle until the ad finishes, or if the weather is good dash outside to toss some peanuts to the squirrels. As long as the ad break came at some natural scene transition in the show this is not very distracting.
On a web site the ad is there with the site content. If it's animated or has audio it distracts while you try to read the content. Often it keeps on doing this for the entire time you are reading the content.
If an ad is visible while you are reading content, I think it really needs to be completely static, or at least static until you actually click it or at least hover over it.
Install Forget Me Not and deny/whitelist/clean up cookies automatically. I deny all cookies, except the ones I need to login to a few sites. Another way to go about it, is to just automatically delete all cookies when you close a page.
Secondly, why aren't you using Temporart Containers?
Each domain gets it's own temporary container and there is no cross contamination. Close the page and it's all gone.
First Party Isolation is part of their quest to re-import privacy features from the Tor browser. It basically completely isolates every domain. You can look up the about:config values to enable it (they're at the bottom of the article too).
IIRC I had it enabled for about a year with no breakage, but about a month ago it suddenly broke my university's login system. But I just turned it back on and that login is working OK again.
Also probably would be good to enable browser.cache.cache_isolation.
[1] https://blog.mozilla.org/blog/2019/09/03/todays-firefox-bloc...
Ideally, when following a link, the container should change as well.
There was several interactive protocols, like telnet or IRC. Maybe that cookie implementation is one reason, why people confuse web with Internet?
To most people, the distinction is an inconsequential technical detail and so they conflate the two, but if someone is teaching the specification history of an implementation detail, they really ought to know the fundamentals.
The mozilla cookie spec used language like "up to" for everything. Microsoft released a copy of the specification on MSDN with all the "up to" replaced with "at least". So IE4+ would support urls "at least" 1000chars. cookies at least whatever-limit it was supposed to have. etc.
They basically one-upped mozilla by offering web devs infinite resources that would, by definition, break on any browser following mozilla sane specification. While, also by definition, supporting everything made under the mozilla specification.
And all the users and webmaster of that time are directly responsible for the privacy mess we are today. And sadly, they are repeating everything again by adopting GoogleChrome and it breakneck speed in setting "standards" that self-serve Google.
This standards trumping for convenience is the ultimate incarnation of embrace-extend-extinguish and we can't stop falling for it!
1st party cookies can be reasonable and needed for functionality.
3th party cookies are for conviniences only.
From a business perspective, third party cookies help businesses make money, which I suppose is useful for them.
Natural persons may be associated with online identifiers […] such as internet protocol addresses, cookie identifiers or other identifiers […]. This may leave traces which, in particular when combined with unique identifiers and other information received by the servers, may be used to create profiles of the natural persons and identify them.
As long as you are not building profiles of people, cookies are fine and you don't even have to ask for permission to use them. Stop collecting data you don't need, and if it is part of your business model, maybe ask a lawyer what part of GDPR actually impacts your business instead of doing what everyone else is doing or relying on internet comment sections.
I don't have a source, but this came out around the time of Snowden in 2013. Basically, the story was that the original programmer had the idea to encrypt the info of the people being tracked, so that the operators would always see an alias and the underlying info would only be revealed to people with the necessary clearance. I also assume they would also only reveal the information to the operators when the targeted people became clear suspects rather than just being anyone in the general populace.
[1] https://en.wikipedia.org/wiki/ThinThread
[2] https://en.wikipedia.org/wiki/William_Binney_(U.S._intellige...
A long while ago, browsers were compliant, in that they only allowed first-party cookies by default, and users had to opt-in (by going into the browser's settings) to allow third party cookies to work.
This was difficult to do for most, but not many sites were unusable without third party cookies enabled, and there weren't that many sites to begin with, so it was "fine": not many users even touched that setting if they weren't affected.
Once there were more sites in total, and once more of them were nigh unusable without third party cookies enabled... there was a problem. A big one. Users had to be told how to configure their user-agent to make the site work. Instructions had to be provided for all common browsers. It was a mess.
User-agents could've solved this by making the UI/UX better: the user could have an easy-to-use interface to enable third-party cookies per-session, per-site, per-something...
... but instead they ended up implementing the easiest way out, and browsers (no longer user-agents now...) started defaulting to third party cookies being allowed by default.
I guess using something like lynx, today, gets one a glimpse into how it was, and how it could have been.
Edit: Just rechecked, Netscape Communicator 4.7 (as of Nov. 1997) had the exclusive options (radio buttons)
() Accept all cookies
() Accept only cookies that get sent back to the originating server
() Do not accept cookies
and an additional checkbox [] Warn me before accepting cookies
(the latter triggering a prompt for any attempt to set a cookie not already denied by the previous options).Edit 2: I got it (NS4.7) to display a cookie warning:
The server 192.168.1.2 wishes to set a cookie
that will be sent back to itself. The name
and value of the cookie are:
test=ABC
This cookie will persist until Jun 7 10:42:41 2020
Do you wish to allow the cookie to be set?
[Cancel] [OK]
Mind (a) that all vital data is included in the message and (b) the kind of general competence expected from an average user, back in the day (long before URLs were deemed too complicated).Him: I need to install some kind of cookie banner plugin.
Me: Alright, why do you think that? Which cookies does your site place?
Him: I don't know...
This is the entire problem. He didn't knoe what his site does, and he wanted to add a cookie banner "just in case".
Does WordPress come with a page disclosing this by default?
Of course, the server access log is not really their business, just the opt-in email. So I guess the webhoster needs to educate its customers if they store server logs?
This can all get kind of complicated if you don't know what you are doing.
no, the original spec did not allow cross domain cookies, so you can not set a cookie for a third party from your domain, but you can, yesterday like today, connect to a third party server from your page and have that serve third party cookies (say, like the Facebook pixel)
> ...this article had a big impact. Soon after many other newspapers started looking into this, which led to two Federal Trade Commission hearings, and the web industry felt pressured to respond.
Feels like we're living in much different times now. There is a lot more noise across our media outlets today, plus the general public seems way more complacent about privacy issues as a whole.
Would an equivalent impact be possible in today's world based off of one well written article? Certainly on some topics yes, but when it comes to user privacy?
It was annoying to setup, and technically complicated, but it worked.
If 3rd party cookies had never been enabled, that's what we would be doing today, and you would never even know your traffic was being sent to a 3rd party.
There's a reason they enabled 3rd party cookies: Because blocking them did not help at all.
Today such proxying would be even easier. Don't promote banning 3rd party cookies, you'll just make privacy even worse.
I'm fairly sure one of us misunderstand.
I'm usure if I misread you post or if you think there is a technical limitation to prevent a tracking company from reading cookies from proxied data?
If so, do you care to explain?
In my opinion (and I think this is common) ad/tracking companies are third parties and when a company proxy data to one of them it is then by definition residing with a third party ev3n if they don't share it with their other customers.
They then know that I (same cookie) visited cnn and read about Ebola
They then know I visited a cycle magazine and read about a new bike.
With proxying they wouldn’t be able to link those three visits together (with cookie data)
When I visit a fourth site, it’s a brand new visit - there is no way for the advertising. Company to know I’m the same version who visited the previous sites.
For sites that make their money from advertising adding proxying would probably be a requirement and be worth the effort, but for most other sites that are trackers by accident it wouldn't be.
Restricting third party cookies won't prevent all tracking but it will increase the cost and reduce the number of sites doing tracking without knowing it.
Fortunately the GDPR also makes this illegal without consent, it legislates the conditions necessary to collect data and the permission you need to share it with third parties. It's not in any way specific to cookies.
And long before cookies the session id was stored in the query string.
That's not true. User agents can remember the credentials you use for a domain. HTTP authentication was never really adopted and sites preferred using web forms and cookies for authentication.
Cookies are not bad. And in fact, there are a lot of technologies to replace tracking-cookies and make tracking even more effective.
Seems like cookies are just the scapegoat in this whole story.
https://blog.mozilla.org/blog/2019/09/03/todays-firefox-bloc...
title: "Today’s Firefox Blocks Third-Party Tracking Cookies and Cryptomining by Default"
from the text: "...will block known “third-party tracking cookies” according to the Disconnect list."
so basically they have a blacklist of third-party cookies, and if it is not on the list it is allowed.
GDPR is about what you are actually allowed to do with the obtained information.
The bad reputation is qualified because cookies have achieved 100% technological obsolescence. Here is the previous comment where I mentioned this and people wanted but failed to prove it wrong: https://news.ycombinator.com/item?id=23098196
Your reply that cookies can also be disabled fails to address this as client side JavaScript and cookies provide overlapping, not equivalent, capabilities.
Cookies are much move convenient for tracking though since they are automatically passed on every request.
But if cookies were somehow curtailed (which will not happen), trackers would switch to using LocalStorage or some other mechanism in no time.
Obsolescence just means the technology in question is antiquated or fully capable of replacement by something of greater preference. As a functional term it has no bearing on frequency of use or popularity.
> The primary reason cookies are still preferred is due to developer ignorance.
And furthermore:
> localStorage would be preferred by end users since there is a distinctive performance difference
I would think cookies would be more performant in the most common case of exchanging a session ID with the server. How would you even achieve that with localStorage besides grabbing all dynamic data with XHR requests after the page loads?
If you don't know don't guess. This is measurable. The primary reason cookies are so incredibly slow ot process is that they require parsing.
https://developer.mozilla.org/en-US/docs/Web/API/Document/co...
https://en.m.wikipedia.org/wiki/Complexity
Perhaps you instead meant to use the word challenging, which is subjective depending upon who you ask.
So, no, certainly not equal complexity.
Authentication and session management across a network can be accomplished across a variety of ways. Operating systems prefer Kerberos for remote authentication. Cookies are preferred by developers who fear JavaScript precisely because because they can be written and transmitted without need for JavaScript. The same end result, authentication and session management, can be accomplished with the same complexity without cookies. Complexity refers to the number of steps involved and not the challenge imposed upon the developer.
https://en.wikipedia.org/wiki/Complexity
The only reason to prefer an out-dated functionally obsolete technology is fear of disruption. I have explained all this already, please see the comment I linked to from above: https://news.ycombinator.com/item?id=23098196
JavaScript is absolutely not intended to function as a core part of merely making authenticated web requests between the browser and the server. I’m saddened by how often I need to explain this.
JavaScript is a general purpose high level language that happens to natively run in the browser. My original point is that cookies are functionally obsolete and still in frequent use because developers are generally afraid of JavaScript. The more this conversation divests from authentication towards JavaScript the more credibility you lend my original opinion.
It’s the same level of complexity either way because whether you use cookies or some other storage mechanism the business requirements around authentication remain the same the and the steps to accomplish those requirements are not so drastically different.
It’s like saying “the reason people don’t use apple juice to make mimosas and continue to use obsolete oranges is because they’re irrationally afraid of apple peelers.”
Do you see how many things are wrong in that statement?
You seem to believe that developers should always chose the most complex and intricate solution possible, and the only reason someone would chose a simpler solution would be due to incompetence or ignorance of the more complex solution.
This is completely opposite of all good engineering practice. Complexity is not a goal, it is a liability. You want to have the minimum amount of complexity which solves the problem.
Using cookies, the browser automatically sends the identifier token along with the initial request, and the server can serve the initial response based on your identity.
With localStorage, the browser initially send an anonymous request to the server, the server then have to return some bootstrap JavaScript which reads the identity token from localStorage and then passes it to the server in the next request, and only then the server can respond based on your identity.
By any reasonable definition, the second approach is more complex, not to mention slower and more fragile.
While it's nice that the original cookie specification is GDPR compliant, ultimately it is better to have the actual GDPR. The article mentions browser fingerprinting, and it seems to me very hard to define a technical specification that completely blocks any kind of fingerprinting. Whereas the GDPR basically says "no unnecessary data collection without consent", sidestepping the whole technical aspect and going straight for the intent.
> The browsers messed up too!
I think this is an interesting remark, because what ultimately happened is that adtech captured (a giant chunk of) the browser industry with Chrome. And I'm not sure whether IE (historically) lacking tracking protection was adtech influenced, or a case of "the browsers messed up", or something else.
The alternative was they were building sites in Flash when they wanted more complicated client-server interactions, which was much more expensive (development time, processor time, bandwidth) but supported all the features they wanted for the user experience.
Even if only a User-Agent string is sent from a "browser" that has no Javascript engine and does no CSS processing or auto-loading of any resources, the online ad services folks, not to mention the "web security" folks, will still try to create a "fingerprint".
There are companies whose entire business is dependent on a demand for lists/databases of user agent strings. For example,
https://www.scientiamobile.com/
Fingerprinting based on user agent seems like a rather easy problem to solve. Aside from not sending the header or every user sending the same one, one idea is to keep changing the string.
The following is from a file called "mosaic-spoof-agents" and dates back to at least 1996.
#
# Agent Spoofing -- Who will you be today?
#
# "I don't think [t]he[y]'ll be too keen" -- Originally from Monty Python, run
# into the ground by Tommy Reilly
#
# NOTE! There is a hard limit of 50 agents! Mosaic will not read anymore!
#
# This file should be located in your HOME directory under the filename:
# .mosaic-spoof-agents
#
# This file consists of lines that begin with a # (comment), a - (a seperator
# for the sub-menu off options), a + (this is special...it denotes that the
# agent following it [no spaces] should be the default agent to use) and
# anything else (considered an agent spoof line).
#
- This is a seperator...as long as the first thing is a dash
# This is a comment line
#
# This is the "example" agent. If you don't like it...comment it out.
# if you want it to be your default, put a + infront of it.
#
Bond_James_Bond/007 (BMW; Z3 Roadster) DOHC_inline_16-valve_4-cylinder
Gandalf/White (Shadowfax; Wind) White_Staff
Elric/Emperor_of_Melnibone (Hellsword; StormBringer - Devourer of Souls)
https://github.blog/2010-03-08-ncsa-mosaic-on-github/https://github.com/alandipert/ncsa-mosaic
One could argue that the original "netiquette" was to change one's user agent string. At least we can see it was contempleted by authors of Mosaic.
https://en.wikipedia.org/wiki/Mosaic_(web_browser)
Today tech companies will argue that any user agent string is an abberration from what they expect then "something is wrong". Users might get blocked or they might be alerted their "browser is not supported" and/or be advised to "upgrade". They might receive a "security" warning that someone logged in to their account. All based on simply changing the user agent string. The assumption today is that no netizen would ever do that.
Today, browsers allow changing the user agent string using some "toolbar" or "console" but if the name given to it is any indication, this is only meant for "developers", not "dumb [users]", to borrow from the infamous Zuckerberg quote.
One of the authors of Mosaic is now a Silicon Valley VC who posts on HN.
The "Who do you want to be today?" is probably a play on the Windows 95 slogan "Where do you want to go today?" A web browser was a new thing in Windows back then, the web being an idea Gates was not easily sold on, and I always thought the slogan seemed to suggest someone thought web access would be a selling point to users.