安全漏洞访问控制:sqlite插入中的数据库

时间:2013-05-04 19:52:14

标签: android database sqlite insert controls

最近,我收到了Forify的一份报告,其中包含有关我的Android应用程序的许多安全问题。 我不明白其中之一:访问控制:数据库。 详细说明:

  

BuicDAO.java,第42行(访问控制:数据库)强化优先级:   高文件夹高王国:安全功能摘要:没有正确的   访问控制,BuicDAO.java中的方法insert()可以执行SQL   第42行的声明包含攻击者控制的主键,   从而允许攻击者访问未经授权的记录。

水槽: BuicDAO.java:42

42 // synchronized(db)  
43 { 
44 myNewKEY = (int) this.db.insert("TableBUIC", null, values); 
45 } 
46 }

这是我的代码:

BuicDAO.java

   public void insert()
   {
      int myNewKEY;      
      ContentValues values = new ContentValues();
      values.putNull("KEY");
      values.put("Name", "Me");
42    // synchronized(db)
43      {
44         myNewKEY = (int) this.db.insert("TableBUIC", null, values);
45      }
46   }

这是问题所在? 我不知道在Android / sqlite上进行安全插入的正确方法是什么。

1 个答案:

答案 0 :(得分:2)

主键由数据库选择(因为您将其设置为NULL),使用ContentValues可以防止SQL注入攻击。

强化是完全错误的。 甚至一个愚蠢的计算机算法也可以证明你的代码是安全的,所以这不仅仅是一个过分热心的警告,而是Fortify中的一个错误。