我需要重命名数据库中任务标题中的标签。我看到了类似的问题,像这样的,但在我的应用程序用户可以创建自定义标题的任务。因此,以下解决方案可能很危险:
db.execSQL("UPDATE " + Task.TABLE +
" SET title = REPLACE(title, '" + fromTagName + "', '" + toTagName + "');");
如果用户将在标题(注入)中使用一些危险命令创建任务怎么办?这种方法会崩溃吗?是否可以使用特殊的android方法代替原始SQL命令?还是现在安全?
使用绑定变量。只需放置一个?在这里有一个变量,然后将参数数组按顺序传递给rawQuery函数。
绝对不要像上面那样使用串联。在任何地方使用绑定变量。用户输入的任何内容都应在bind变量中,任何常量都应在查询中。这样就消除了所有可能的SQL注入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句