The people who are using your software need a lesson about "SQL injection".  No 
one should create SQL statements "on the fly" that include literal character 
strings built from data.  Not only could there be issues if there are special 
characters in the data to be included as a literal string (including the 
possibility of a syntax error that prevents the statement from being executed) 
but evil people could do severe damage -- but this can easily be avoided by 
using parameters.
 
For example, if the value being searched for came from user input (say on a web 
page) users of your software must not do things like this --
 
sql = "select * from mytbl where mycol ='" + input + "'"
 
because, if the input is something like
 
x' ; drop table mytbl; --
 
the table will be dropped!  This cannot happen if parameters are used to pass 
the string.
 
You might be better off providing only a method where the user passes strings 
for the table name ("mytbl" in the example before), the columns to be returned 
(separated by commas, or "*" for all as above), the name of the column to 
compare ("mycol" in the example) and the value to search for.  It would then be 
your code that builds and runs the SQL statement using parameters.
 
J. Merrill
 
-----Original Message-----
Date: Wed, 3 Apr 2013 22:41:01 +0900

From: Yongil Jang <yongilj...@gmail.com>
To: General Discussion of SQLite Database <sqlite-users@sqlite.org>
Subject: Re: [sqlite] [Question] How can I recognize arguments are
 dynamic binding values in user defined function?
Message-ID:
 <cao_0w+hg70q00zzcxn6ojigo_otrng25bbn9n_p+t0xavyq...@mail.gmail.com>
Content-Type: text/plain; charset=EUC-KR

Thank you, Simon and Igor.

I will investigate about your opinion, as you mentioned.

In general, if parameter string contains alphabets only, it doesn't make
any problems.

However, I couldn't check that my function is used correctly for every
applications.
Some developers don't know why does it fails when using special characters
and applications can be packaged with hidden issues.

For this reason, I was looking for some solutions that I can send warning
messages to application developers if they use plain text without binding
arguments.

Best regards,
Yongil jang.

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to