SQL injection vulnerabilities occur when you build SQL strings manually
through string concatenation, like this:
String sqlStatement = SELECT ID FROM MYTABLE WHERE TEXTFIELD LIKE '% +
queryFromUser + %';;
The simplest way, IMO, to protect against SQL injection attacks is to not
do this. Using JDBC's PreparedStatement, or any object-relational library
will protect you from SQL injection by handling the concatenation for you,
safely. If you're determined to do this yourself, you can look at
commons-lang, which has some escaping utilities.
http://commons.apache.org/lang/api-2.3/org/apache/commons/lang/StringEscapeUtils.html
The problem with rejecting potentially SQL-busting user input is that SQL
is valid to lots of user input. For example, this string will break a SQL
statement unless properly escaped:
Macy's
And yet it's perfectly reasonable-looking user input, right?
On 2 January 2013 10:20, John j...@quivinco.com wrote:
Hi,
Has anyone any knowledge of this topic? I'd like to ensure that any of my
text input fields can block any use of SQL reserved words. Would a
validator be a suitable approach?
happy new year,
John