这个Android SQL语句是否容易受到SQL注入攻击?

时间:2015-06-17 15:20:37

标签: android android-sqlite

query()类提供的SQLiteDatabase方法是否可以安全使用而不必担心SQL注入?

db.query(TABLE,cols,COL_ID + " = '" + id + "' AND " + COL_FROM + " = '" + from + "'",null,null,null,null);

idfrom变量完全没有转义。

或以下是唯一安全的方法?

"column=? OR column2=?", 
      new String[] {"value1", "value2"}

1 个答案:

答案 0 :(得分:3)

  

query()类提供的SQLiteDatabase方法是否可以安全使用而不必担心SQL注入?

没有

query()本质上只是SQLiteQueryBuilder的包装器,它构造一个原始的SQL语句,按原样执行。

  

或以下是唯一安全的方法?

严格来说不是 ,而是一种简单而安全的方式,是的。

(请注意,您已将AND切换为OR。)