android - 使用 sqlEscapeString() 后如何取消转义字符串

标签 android sqlite escaping

因此,我一直在寻找最简单、最有效的方法来为我的应用程序转义 SQLite 中的恶意字符串。这里的大多数答案通常都有正则表达式路线。我偶然发现了一个答案 sqlEscapeString .

有一个问题。当它转义它时,它似乎也在字符串的末尾添加单引号,所以它从这个:Test's 到:'Test''s'。现在我真的不知道为什么它会这样做,但我希望有人知道 Android 中存在的功能相反。 DatabaseUtils 似乎没有相应的功能。

最佳答案

我想说,防止恶意字符串的最有效方法就是让 SQLite 来完成这项工作。 Android 包装该功能并使用 ContentValuesString[]Object[] 参数,具体取决于您使用哪种方法查询数据库,保存转义值。:

SQLiteDatabase.insert(...)

SQLiteDatabase.query(...)

SQLiteDatabase.update(...)

SQLiteDatabase.delete(...)

SQLiteDatabase.execSQL(...)

在使用上述方法时,在您的 SQL 语句中放置一个 ? 来代替您要转义的字符串。

关于android - 使用 sqlEscapeString() 后如何取消转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224898/

相关文章:

escaping - 如何从 Atlassian 标记中的格式中转义文本 block

android - 使用 quickblox 在 Android 中聊天应用程序

android - Gradle-无法初始化类org.apache.http.conn.ssl.SSLConnectionSocketFactory

arrays - Kotlin 序列到数组

python - 如何将默认 `db.Model` 子类化为使用 SQLAlchemy 的自定义 `Base`

java - 将 SQLite 条目打印到 ListView 中

mysql - mysql 有路径分隔符功能吗?

java - Android 日期格式转换为自定义日期

Android 应用程序图标未在运行的应用程序中显示

c++ - 使用 Sqlite3 blob 的 C++ 程序中的 RAM 消耗