SQLiteDatabase
类提供的 query()
方法是否可以安全使用,无需担心 SQL 注入(inject)?
db.query(TABLE,cols,COL_ID + " = '" + id + "' AND " + COL_FROM + " = '" + from + "'",null,null,null,null);
id
和 from
变量完全未转义。
或者以下是唯一安全的方法吗?
"column=? OR column2=?",
new String[] {"value1", "value2"}
最佳答案
Is the
query()
method provided bySQLiteDatabase
class safe to use without worrying about SQL injections?
没有。
query()
本质上只是 SQLiteQueryBuilder
的包装器。它构造一个原始 SQL 语句并按原样执行。
Or is the following the only safe way to go?
严格来说,这不是唯一,而是一种简单且安全的方法,是的。
(请注意,您已将 AND
切换为 OR
。)
关于android - 这个 Android SQL 语句是否容易受到 SQL 注入(inject)攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30895780/