2

考虑 sqlite3 fts4 表

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

以下内容对 txt 包含字符串的 sql 注入安全吗?

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

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

1 回答 1

3

是的,它不会受到 SQL 注入的影响;这就是 SQL 参数的用途,用于正确转义和引用txt

如果您要使用字符串格式 ("... MATCH ('%s')" % txt" ... MATCH ('{}')".format(txt)那么您将打开一个 SQL 注入向量,因为您不会在txt.

于 2013-05-11T20:53:30.617 回答