2013-05-11 65 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被轉義元字符。