In an informal study, Michael Sutton of SPI Dynamics was able to demonstrate that 80 out of 708 tested web sites were susceptible to SQL injection attacks.
In order to limit the test to sites that used a database, he first performed a Google search for sites with URLs containing "id=10". The assumption was that any site using a name=number pattern in the query string was most likely doing a database lookup. Using this, 1000 sites were selected.
After removing duplicates and non-functional sites, Michael Sutton was left with a pool of 708 candidate sites. By altering the query string, he found that 80 sites were returning error messages that suggested they were vulnerable to SQL injection attacks.
While study may not be formal enough for an academic paper, it does suggest that SQL vulnerabilities are a wide-spread problem among websites.
Community comments
Protection against SQL Injection (request for comments)
by Thomas Mueller,
Re: Protection against SQL Injection (request for comments)
by Paul H,
lies damn lies...
by Jelmer Kuperus,
Protection against SQL Injection (request for comments)
by Thomas Mueller,
Your message is awaiting moderation. Thank you for participating in the discussion.
There is an abvious way to protect against this vulnerability: don't embed user input into the SQL statement, use parameterized statements instead. I suggest that this should be enforced by the database engine (or, by the driver), by disabling literals in SQL statements. See here for more details:
www.h2database.com/html/advanced.html#sql_injec...
What do you think about this solution?
Re: Protection against SQL Injection (request for comments)
by Paul H,
Your message is awaiting moderation. Thank you for participating in the discussion.
It's the standard solution :).
Other problems (derived from the request params issues) might occur like removal/retrieval of items, for what you don't have credentials, common mistake in all the web apps, but that's a design problem.
It would be nice to hear about solutions to avoid such flaws. I saw a few months ago an article about encrypting the url params etc, but i can't find the link :(.
lies damn lies...
by Jelmer Kuperus,
Your message is awaiting moderation. Thank you for participating in the discussion.
pfff or an error is shown because the parameter cannot be parsed to a string. This doesnt say anything