Somehow we (the programming profession) are doing this whole thing wrong, and I'm not sure why.
Somehow we (the programming profession) are doing this whole thing wrong, and I'm not sure why.
The implementations across languages are remarkably similar, I suppose due to the lineage of the original C apis from the various DB vendors.
I don't see any easy way to fix it. If it's possible, and easy to do, it will keep happening.
Pretty much only explicit checks are able to remove the tainted flag from the data. As such you limit the security problems to faulty checks. It is impossible to forget to check something.
Above is used in Bugzilla. Despite all of that, it's still pretty easy to make mistakes. IMO it's rather unfortunate that not more languages have such a feature. This as Perl code if often pretty difficult to read (it doesn't have to be!).
Maybe it can be pitched to Rust.