Conversation

Replying to
what really prevents me from installing Signal Desktop is not the risk of RCE (there are ways to fix that like sandboxes and VMs!) but that a bug would still lead to accessing other chats, etc. and it's non-trivial to fix that
1
1
Electron tends to cripple Content-Security-Policy. IIRC, it essentially breaks 'self'. Since you only need to deal with Chromium, you can strictly use hash-source as the only way scripts as permitted. Other browsers don't yet support hash-source for external scripts, only inline.
1
1
I very much doubt they have a strict enough CSP to do much to prevent XSS. They also probably aren't using Trusted Types. If you entirely avoid XSS sinks by working with the DOM using structured APIs, you can enforce Trusted Types with a strict policy not trusting sanitization.
1
1
For a website, using 'self' means you permit everything from your server. You can be very careful to only have static content and APIs not serving JavaScript. You can't really do that with Electron. The local JavaScript has the ability to create files considered to be 'self'...
1
2
I have no clue how to write a Trusted Types policy and I don't need to learn to use the strictest mode. I already wrote JS following the rules required such as never using innerHTML but rather using the structured APIs even when it's verbose/annoying. It simply enforces it now.
1
1
Can't make the mistake of using some API where dynamic JS/HTML injection can happen. There are some particularly subtle ones. Signal presumably uses some bloated frameworks/libraries where you have no choice but to set up actual policies though, to either sanitize or trust them.
1
Show replies