Remix.run Logo
pyaamb 4 hours ago

Need to rethink the system that allows for (and encourages) this kind of plausible deniability. From "Oh we need this permission for [non essential feature] and you need to accept it if you want the app at all" -> to giving the user ultimate control over what happens on their personal device. Virtualize what the app can see and use fake data/identifiers/devices if necessary to get it to do what its supposed to. If the App isn't going to act in good faith why should the user? Fine grained permissions don't really work in practice because the app can keep annoying the user until they give in and hit Allow.

pyaamb 4 hours ago | parent | next [-]

Also perhaps AI agents are now capable enough to run these apps the way the user would and recognize these dark patterns. Flag those and feed it back to a warning at the point of sale that users can upvote there to signal their disapproval and a threshold score that risks removal of the app from the store. Because bad behaviour continues to make business sense if the rules allow it. Moreover, it penalizes and puts pressure on the good actors as a "missed business opportunity".

ajross 4 hours ago | parent | prev [-]

What you want is basically how it works. On both phone platforms and PWAs, all permissions are visible to the user explicitly. All of them can be revoked at any time. Apps are disallowed from requesting an already-denied permission.

Obviously apps can tell if they haven't been granted a permission (even if you tried to fake this, they aren't dummies and will know if it's not working), and obviously third party software isn't under any obligation to work without them.

But the platforms have done what the platforms can do, at the architecture side, really. The next stage is human-audited enforcement of malware, which this AliExpress nonsense might hopefully run afoul of.

xnx 4 hours ago | parent | next [-]

> Obviously apps can tell if they haven't been granted a permission (even if you tried to fake this, they aren't dummies and will know if it's not working),

How can they tell? For the permissions I can think of: location, filesystem, etc. it should be easy to lie/spoof.

drdexebtjl 4 hours ago | parent | prev [-]

>Obviously apps can tell if they haven't been granted a permission

By design. This doesn’t need to be the case. It should be impossible to tell you have denied a permission.

In TFA’s case, the browser could just keep processing audio but never hook it up to a real audio sink.

victorbjorklund 3 hours ago | parent | next [-]

Soundd like a nightmare to build legitimate apps if you for example are building an app that uses the camera but you can’t in anyway tell that using the camera fails (because user had denied the permission 6 months ago and has no memory of it) and instead of being able to give a helpful error you are just ending up with I am guessing fake images (maybe just a black screen).

wotb 25 minutes ago | parent | next [-]

Just because it's hard doesn't mean you shouldn't try. What about a popup saying "xyz has tried to access the camera a lot lately, continue blocking?"? Or apps can apply for set of 'core permissions' that can't be denied but are much more tightly controlled? Apple and Google are some of the biggest companies in the world, they don't deserve as much leeway as you're offering.

voakbasda 3 hours ago | parent | prev [-]

The image could contain a message that it is disabled.

StingyJelly an hour ago | parent [-]

Then it is detectable. Those permissions should have a third option alongside allow and block - spoof.

ajross 4 hours ago | parent | prev [-]

That does nothing but start an arms race. Fine, audio "works" but do you get noise? Can you read back the sounds you play? No, right? It doesn't work, QED. Now the platform needs to fake the noise.

Likewise for any other hardware access you want, and most of them are harder. How do you fake local storage without storing anything? How do you fake Bluetooth access without virtualizing an entire device? Do you fake the screen dimensions to look like something else? Input latency? Where does it stop?

No, "does this work" is among the easiest questions to answer in technology. We aren't going to win this war.

emctech 3 hours ago | parent [-]

The best you can do on the modern web is reduce your fingerprint footprint, though it comes at a cost of websites breaking from JS disabling, or local time zone anonymisation.