query()
类提供的SQLiteDatabase
方法是否可以安全使用而不必担心SQL注入?
db.query(TABLE,cols,COL_ID + " = '" + id + "' AND " + COL_FROM + " = '" + from + "'",null,null,null,null);
id
和from
变量完全没有转义。
或以下是唯一安全的方法?
"column=? OR column2=?",
new String[] {"value1", "value2"}
答案 0 :(得分:3)
query()
类提供的SQLiteDatabase
方法是否可以安全使用而不必担心SQL注入?
没有
query()
本质上只是SQLiteQueryBuilder
的包装器,它构造一个原始的SQL语句,按原样执行。
或以下是唯一安全的方法?
严格来说不是 ,而是一种简单而安全的方式,是的。
(请注意,您已将AND
切换为OR
。)