4 ms·
So the issue is poor sandboxing of extensions. Wouldn’t something like WASM help with this? As in, a content filter extension (or anything that interacts with
by orf 2y ago
So the issue is poor sandboxing of extensions. Wouldn’t something like WASM help with this?
As in, a content filter extension (or anything that interacts with a content filter) is run in a WASM sandbox without any access to the network or underlying system? It’s hermetically sealed from the rest of the extension, that might well need to make external requests to function.
- CJefferson 2y agoThe problem, for an ad blocker for example, is it needs to make changes to the page. If it can do that, it can change the page so that the page makes any evil requests it wants. The v3 fixes this by instead only letting bad blocker submit things they want blocking, and never letting them see that page. It’s not perfect by any means, but it is much more secure.
- orf 2y agoSurely the problem isn’t making changes to a page, but instead having access to the full page content and being able to send it somewhere else. For example, iOS runs content filters in a special isolated process with no persistence or access to the outside world. With this model, the content filter requests elements to be removed and the browser does the actual removal. As such, the scope of modifications can be reduced whilst keeping arbitrary and perhaps complex filtering logic.
- tssge 2y agoHow does this differ from how Manifest v3 declarativeNetRequest is in practice? Not saying they're the same, just wondering of the capabilities between these.
- yencabulator 2y agoThe implied attack was the content filter changing the page to submit the data it wants snooped. Consider replacing ads with cats from a site the attacker conveniently happens to host, and leaking the desired data in query arguments.
- orf 2y agoYes, this is what I said above: “Surely the problem isn’t making changes to a page, but instead having access to the full page content and being able to send it somewhere else.” “Send it somewhere else” being the important part. The interface Chrome went with was a declarative list of filters that Chrome will use to perform the actual filtering, but the declarative interface isn’t great and wasn’t well received. My point is: there is an interface that is non-declarative and sandboxed, whilst allowing Chrome to perform the actual filtering.
- rcxdude 2y agoYeah, but you can't do both, that's the point! If you can directly change the website content, the website itself runs in a sufficiently non-sandboxed environment to allow the data to be sent somewhere else. You can only get around this by making a more limited blocking process (which may not need to be as limited as chrome has gone with, but still, not being able to e.g. substitute in shims for ad networks will reduce the effectiveness of your adblocker. It certainly makes anti-ad-blocking have the significant advantage).
- ec109685 2y agoIt can inject scripts into the page it’s manipulating to do whatever it wants.
- bananapub 2y ago> So the issue is poor sandboxing of extensions. nope - the way ublock etc work is arbitrary code exec and arbitrary access to the urls and pages. the new extension model that everyone hates is extreme sandboxing, but not letting adblockers do that.
- orf 2y ago> the way ublock etc work is arbitrary code exec and arbitrary access to the urls and pages. In other words, the problem is poor sandboxing of extensions.