Android SQLite-安全地替换字符串的一部分

Oleksandr Albul

我需要重命名数据库中任务标题中的标签。我看到了类似的问题,像这样的,但在我的应用程序用户可以创建自定义标题的任务。因此,以下解决方案可能很危险:

db.execSQL("UPDATE " + Task.TABLE +
            " SET title = REPLACE(title, '" + fromTagName + "', '" + toTagName + "');");

如果用户将在标题(注入)中使用一些危险命令创建任务怎么办?这种方法会崩溃吗?是否可以使用特殊的android方法代替原始SQL命令?还是现在安全?

加布·塞尚

使用绑定变量。只需放置一个?在这里有一个变量,然后将参数数组按顺序传递给rawQuery函数。

绝对不要像上面那样使用串联。在任何地方使用绑定变量。用户输入的任何内容都应在bind变量中,任何常量都应在查询中。这样就消除了所有可能的SQL注入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章