修正 SQL 植入安全性漏洞

開發人員請注意,如果您的應用程式含有 SQL 植入安全性漏洞,請詳閱本文資訊。

最新動態

您的一個或多個應用程式含有必須修正的 SQL 植入安全性漏洞。請參閱 Play Console 的通知內容。Play Console 顯示的修正期限過後,Google Play 會將尚未修復安全漏洞的應用程式下架。

需採取行動​

  1. 登入 Play Console,然後前往「快訊」專區查看受影響的應用程式以及解決這些問題的期限。
  2. 更新受影響的應用程式並修復安全漏洞。
  3. 提交受影響應用程式的更新版本。

我們將再次審查您重新提交的應用程式,過程可能需要數小時。如果應用程式可以通過審查並成功發布,您就不必採取進一步行動。如果應用程式未能通過審查,就無法發布新的版本,而且您將收到電子郵件通知。

其他詳細資訊

在匯出的 ContentProvider 中實作查詢更新刪除等方法時,如果將未經處理的輸入資料傳遞至 SQL 陳述式,就可能產生 SQL 植入安全性漏洞。惡意應用程式可能提供精心設計的輸入資料,藉此存取私人資料或損害資料庫內容。您可以按照下列方法修正這個問題:

如果受影響的 ContentProvider 無需向其他應用程式提供資料:

如果受影響的 ContentProvider 需要向其他應用程式提供資料:

  • 您可以防止 SQL 植入攻擊利用 SQLiteDatabase.query,方法是透過投影對應來使用嚴格模式。嚴格模式可阻絕惡意的選取子句,投影對應則可阻絕惡意的投影子句。您必須同時使用這兩項功能才能確保查詢安全無虞。
  • 您可以防止 SQL 植入攻擊利用 SQLiteDatabase.updateSQLiteDatabase.delete,方法是使用選取子句,並且在該子句中利用「?」做為可替換參數和獨立選取引數陣列。請勿以不受信任的輸入資料建構選取子句。

我們很樂意提供協助

如有關於安全漏洞的技術問題,請前往 Stack Overflow 張貼問題並加上「android-security」標記。如需進一步瞭解這個問題的解決步驟,歡迎與開發人員支援小組聯絡。

這篇文章實用嗎?
我們應如何改進呢?