2013-05-11 62 views
2

考虑sqlite3的FTS4表SQL注入sqlite的全文搜索

c.execute("CREATE VIRTUAL TABLE docs USING fts4(content)")  

是从SQL注入其中,TXT包含字符串以下安全吗?

我不确定参数化查询是否安全,因为只有一个参数txt是一个字符串。

c.execute("SELECT * FROM docs WHERE docs MATCH (?)",(txt,)) 

回答

3

是的,它从SQL注入是安全的;那就是SQL参数是对于,要正确地转义和引用txt

如果你使用字符串格式化("... MATCH ('%s')" % txt" ... MATCH ('{}')".format(txt)然后你会打开一个SQL注入载体,因为你不会在txt被转义元字符。