Actually, what I really wanted to blog about before getting
carried away with irony yesterday was an old idea
on how to force my developers to use placeholders exclusively for
SQL queries in applications. As should be apparent from
yesterdays blog entry, I am strongly in favour of using
placeholders for interpolating values into SQL queries, due to
the great reduction in potential bugs (including, but not limited
to, SQL injections).
Basically, wrap the database API so that all database access
passes through the wrapper. This can usually be achieved, for
example by subclassing DBI (for Perl) and returning such
subclasses from the application connection pool, or other similar
methods. Probably many large web applications already have such
wrappers or use APIs that can be patched or extended
appropriately.
Now add code that basically bombs out with a big …
[Read more]