Open frasertweedale opened 5 years ago
@romanofski POC commit: https://github.com/purebred-mua/purebred/commit/7e2b74cbaa421967c92abb79b8bfe1baab4dc39e. LMK what you think. It doesn't have to be a big bang, we can do it progressively.
Yep I like this very much. So the deal is basically that we use Tainted
to express the fact that the data could be malicious or "dirty" and needs to be "cleaned" before displaying. (I think that's exactly what you wrote in the description, but I wanted to express it with my words in order to have it understood).
Cool, so I'll push forward with this on the subprocess side and make that the first deliverable. Afterwards I'll turn focus to taint on mail bodies / parts.
Btw @frasertweedale was wondering whether is might use the plugin system too or should we just apply what we already have?
No, this is built-in behaviour.
It is a good question whether data from plugins should be trusted or not. In general, because the user explicitly enables the plugin, there is no need to taint data from plugins. But perhaps there will be a use case.
Purebred handles several kinds of untrusted data:
We should use types to demarcate these untrusted data and force (or at least "strongly encourage") the programmer to sanitise the data properly before handling it. This is especially relevant when:
The specific deliverables are grouped by the kinds of data we want to taint: