
I have been designing and writing software for 30 years, including the design and population of computer programs, databases and data warehouses. Developers work within very tight syntax and command structure limitations imposed by the companies and teams which provide languages and databases. There is little, if any choice in this matter. If the programming language or database makes something impossible, developers have to work very hard indeed to make it possible.
In other words, it is the designers and builders of programming languages that decide what is possible and what is not. With a great deal of effort, developers are usually clever enough to work their way around what they feel (sometimes correctly) are design shortfalls. That is not the case here. With SQL injections, it is the taking of simpler shortcuts which are allowed by the programming languages and databases which are causing the problems. Just stop allowing those shortcuts.
Instead of whining and complaining about the developers, it is the job of the people that sell or otherwise provide programming languages and databases to make it very difficult indeed to allow such things to happen. It would be much easier for a dozen companies and groups to close these holes, or make them very hard to get through, than it would be to change the way hundreds of thousands of developers write, and may wrongly write, code. If they make it hard enough, the developers are very unlikely to do things the wrong way.
This entire discussion is like airplane manufacturers saying that all crashes are the fault of pilots, when in truth most are the fault of airplane designers. The developers are the pilots in the SQL injection situation, and blaming them is not an efficient way to fix the problem. If you make it impossible to code software that allows an SQL injection to happen, they will stop. If you leave it totally up to the developers, they will not all stop. Which is the better choice?






Comment Preview