News for hackers. Stuff that matters.
Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by nandhp on Friday December 09, 2016 @10:47AM (#13139344)
> For starters, leveraging caching via a common CDN pretty much requires everyone to be using a single version from a single CDN. If you can't agree on that, then every time a new version comes out the web is split and the caching doesn't work, and every time someone decides to use another CDN (or someone provides a new one) the group is split again.

All this common web stuff that is distributed by several CDNs (as well as separately by individuals) really suggests to me that there should some browser feature like `<script src="jquery.min.js" sha256="85556761a8800d14ced8fcd41a6b8b26bf012d44a318866c0d81a62092efd9bf" />` that would allow the browser to treat copies of the file from different CDNs as the same. (This would nicely eliminate most of the privacy concerns with third-party jQuery CDNs as well.)

Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by Klathmon on Friday December 09, 2016 @11:00AM (#13139444)
Because anything that can cross domains instantly allows anyone to probe your browser to see what is in your cache.

So to take it to a bit of a rediculous (but still possible) point, I could probably guess what your HN user-page looks like to you. So from there I could serve that in an AJAX request to all my visitors with this content-based hash and if I get a hit from someone, I can be pretty damn sure it's you.

And that only really solves one or 2 of those issues. The versioning, compression schemes, formats, number of fonts, and sizes of browser caches will still cause this system's cache to be a revolving door, just slightly more effective.

And as for the security concerns of using a CDN. Subresource-integrity (which someone else here linked already) allows you (you being the person adding the <script> tag to your site) to say what the hash of the file you expect is, and browsers won't execute it if it doesn't match. So that lets you include 3rd party resources without fear that they will be tampered with.

Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by fryguy on Friday December 09, 2016 @03:00PM (#13141353)
Ideally this would be used with a sort of `Cache-Global: true` header in HTTP, and then you would only be able to grab things that are intended to be cached like this. It would do nothing to stop super-cookies with this method though.
Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by itaibn on Friday December 09, 2016 @02:24PM (#13141082)
Security hole: This could leak hash preimages that the user has in cache but are sensitive.

Solution: Using a sha256="..." attribute should only allow you to access files that were initially loaded with a tag that has a sha256 attribute, and this attribute is only used for resources the developer considers public.

Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by chucksmash on Friday December 09, 2016 @11:03AM (#13139469)
The mechanism here (if not the intent) is pretty similar to subresource integrity[1].

[1]: https://developer.mozilla.org/en-US/docs/Web/Security/Subres...

Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by rrdharan on Friday December 09, 2016 @11:23AM (#13139618)
Was about to reply with exactly that information, but as it turns out apparently doing content addressable caching via the SRI mechanism has some problems and maybe is not possible:

https://hillbrad.github.io/sri-addressable-caching/sri-addre...

Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by tmd83 on Friday December 09, 2016 @10:56AM (#13139423)
Yeah have thought about this a few times myself. Maybe missing something that makes it impossible/risky? Or maybe its just the tendency to ignore simple solutions.

This not only solves the CDN issue but it also solve the issue of having to rename the files manually everytime someone do a change. It just makes caching that much saner.

Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by russellsprouts on Friday December 09, 2016 @12:20PM (#13140037)
It can be used to subvert the same origin policy and content security policy.

If you see a script tag with the URL bank.com/evil.js, the browser shouldn't assume that the bank is actually hosting evil.js. Even if the hash matches, the content might not be there.

The bank might be using a content security policy to minimize the damage that an XSS attack can do. It only allows script tags from the same origin. However, now an attacker just needs to load evil.js with a particular hash into the cache, and they can create the illusion that the site is hosting it, without having to hack the server to do so.

Re:Saving the Internet 2000TB a Day: Fixing Font Awesome’s F... by spiffytech on Friday December 16, 2016 @11:28AM (#13194350)
This is the dream of IPFS.