android - 这个 Android SQL 语句是否容易受到 SQL 注入(inject)攻击?

标签 android android-sqlite

SQLiteDatabase 类提供的 query() 方法是否可以安全使用,无需担心 SQL 注入(inject)?

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

idfrom 变量完全未转义。

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

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

最佳答案

Is the query() method provided by SQLiteDatabase 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/

相关文章:

android - 了解异步任务

java - Android - SQLite - 在 Date1 和 Date2 之间选择

java - 如何使用 id sqlite 获取一行?

android - 如何解决歧义方法?

java - 从 SQLite Android Studio java 中检索日期

android - 获取 Assets 文件夹中的 SQLite 路径

c# - 如何使用 Experitest 检查 Android( native )应用程序的密码字段的屏蔽? -

java - Android Studio 的 Retrofit2 : Cant get the array of petrol-stations

Android ListView 组

java - 如何在 Android 中为 Spinner 设置所选项目