whoops, forget that, it's not possible as the sql injection would undo the 
ESCAPE clause
 

> From: gert_corth...@hotmail.com
> To: sqlite-users@sqlite.org
> Date: Thu, 20 Oct 2011 14:55:00 +0200
> Subject: Re: [sqlite] string conatenated sql statements
> 
> 
> 
> 
> 
> > To: sqlite-users@sqlite.org
> > From: itandet...@mvps.org
> > Date: Thu, 20 Oct 2011 07:55:26 -0400
> > Subject: Re: [sqlite] string conatenated sql statements
> > 
> > Gert Corthout <gert_corth...@hotmail.com> wrote:
> > > My argument so far is that parametrized queries are way faster if used 
> > > properly.
> > > The next obvious argument is sql injection. On all string input a simple 
> > > conversion is done: any ' is replaced by '', that's it.
> > > This seems to block off any sql injection right there as the escape 
> > > character \ doesn't work in sqlite. 
> > 
> > Yes, this should be sufficient to prevent the attack. %q specifier in 
> > sqlite3_mprintf performs the same manipulation, for the same reasons:
> > 
> > http://www.sqlite.org/c3ref/mprintf.html
> > 
> > > Alternatively can I make sql statements fail by including funky 
> > > characters or character combinations?
> > 
> > It would be difficult to get SQLite to crash outright. It would take any 
> > sequence of bytes and stuff it into the database as-is. That said, you 
> > might get strange results with strings that are not well-formed UTF-8 or 
> > UTF-16 sequences (depending on which API flavor you are using). However, 
> > this is equally true for strings bound as parameters as well as string 
> > literals embedded directly into the statement.
> > 
> > Performance is really the strongest argument. sqlite3_prepare is a fairly 
> > expensive operation, it's beneficial to run it once and reuse the statement 
> > many times with different parameters. Plus the time you save on not having 
> > to pre-process the strings, plus the peace of mind knowing that you haven't 
> > accidentally missed a spot where such pre-processing would be necessary.
> > -- 
> 
> Thank you for your response, I tought as much.
> I can see only 1 very long-shot security issue. Assuming I am a malafide 
> programmer at our company I could add ESCAPE ']' to a vital query that takes 
> user input and then use ]' to break out and inject some SQL in the live 
> system, right? 
> 
> kind regards,
> Gert 
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
                                          
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to