是什么让Android应用程序容易受到SQL注入攻击?

5 java security android sql-injection android-activity

SQL注入的定义

SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,其中将恶意SQL语句插入到输入字段中以便执行(例如,将数据库内容转储给攻击者).

SQL注入如何影响Android操作系统

Android应用程序中使用的SQLite是功能完备的数据库,因此就像SQL Server或MySQL盒子一样,它们容易受到SQL注入的影响.SQL注入通常通过向查询字符串添加数据或在表单字段中添加数据来工作; 让黑客访问数据库或未经授权的登录.SQL注入通常用于攻击Web视图或Web服务,但它也可用于攻击活动.

SQL注入漏洞的根本原因是使用动态或连接的SQL查询.如果通过连接用户提供的输入构造SQL查询; 然后,用户可以提供SQL攻击向量而不是有效输入,并操纵后端SQL查询.

注入过程通过过早终止文本字符串并附加新命令来工作.因为inserted命令在执行之前可能会附加其他字符串,所以注入的字符串将以注释标记" - "结束.执行时将忽略后续文本.

我的问题

虽然我理解SQL注入是什么以及如何进行SQL注入.我不知道是什么因素导致选择的Android代码容易受到此类攻击.

Rob*_*ert 5

SQL注入不是Android特定的.

无论如何答案很简单:如果将SQL命令字符串与用户数据输入(通过GUI,网络......)组合在一起,那么您的应用程序可能容易受到SQL注入的攻击.

简单的说法是仅将静态SQL命令字符串与PreparedStatement结合使用.编译后,所有用户数据和其他参数都在PreparedStatement上设置.


Sco*_*son 3

如果您的代码采用用户名和密码等变量,并且您的应用程序进行 sql 查询,仅将这些变量放入 sql 字符串中,而不首先对字符串进行清理,那么用户可能会注入错误的代码,并且结果可能会很糟糕。因此,就像任何应用程序一样,清理用户输入是攻击成功与否的关键。