2013-05-11 3 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.

Смежные вопросы