2013-05-04 66 views
1

最近,我收到Forify報告,其中涉及到我的Android應用程序的許多安全問題。 我不明白其中的一個:訪問控制:數據庫。 詳情:安全漏洞訪問控制:sqlite中的數據庫插入

BuicDAO.java 42行(訪問控制:數據庫)Fortify的優先級: 高級文件夾高王國:安全功能摘要:如果沒有適當的BuicDAO.java訪問 控制方法插入()即可在第42行執行一條SQL 聲明,其中包含攻擊者控制的主鍵 ,從而允許攻擊者訪問未經授權的記錄。

水槽: 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的正確方法。

+0

從您發佈的內容看,由於數據庫操作中沒有用戶提供的數據,因此看起來像是誤報。 – laalto 2013-05-04 20:17:49

回答

1

主鍵由數據庫選擇(因爲您將其設置爲NULL),並且使用ContentValues可防止SQL注入攻擊。

Fortify只是錯誤的。 即使是一個愚蠢的計算機算法也可以證明你的代碼是安全的,所以這不僅僅是一個過分熱心的警告,而是Fortify中的一個錯誤。

+0

謝謝你們:) – DiegoGalo 2013-05-05 22:25:30