開發人員請注意,如果您的應用程式含有 SQL 植入安全性漏洞,請詳閱本文資訊。
最新動態
您的一個或多個應用程式含有必須修正的 SQL 植入安全性漏洞。請參閱 Play Console 的通知內容。在 Play Console 顯示的修正期限過後,Google Play 會將尚未修復安全漏洞的應用程式下架。
需採取行動
- 登入 Play Console,然後前往「快訊」專區查看受影響的應用程式以及解決這些問題的期限。
- 更新受影響的應用程式並修復安全漏洞。
- 提交受影響應用程式的更新版本。
我們將再次審查您重新提交的應用程式,過程可能需要數小時。如果應用程式可以通過審查並成功發布,您就不必採取進一步行動。如果應用程式未能通過審查,就無法發布新的版本,而且您將收到電子郵件通知。
其他詳細資訊
在匯出的 ContentProvider
中實作查詢
、更新
和刪除
等方法時,如果將未經處理的輸入資料傳遞至 SQL 陳述式,就可能產生 SQL 植入安全性漏洞。惡意應用程式可能提供精心設計的輸入資料,藉此存取私人資料或損害資料庫內容。您可以按照下列方法修正這個問題:
如果受影響的 ContentProvider
無需向其他應用程式提供資料:
- 您可以針對宣示說明中受影響的
ContentProvider
修改<provider>
標籤,藉此設定android:exported="false"
。這樣可以避免其他應用程式傳送調用請求給受影響的ContentProvider
。 -
您也可以設定
android:permission
屬性,將權限
設為android:protectionLevel=“signature”
,防止其他開發人員撰寫的應用程式傳送調用請求給受影響的ContentProvider
。
如果受影響的 ContentProvider
需要向其他應用程式提供資料:
- 您可以防止 SQL 植入攻擊利用
SQLiteDatabase.query
,方法是透過投影對應來使用嚴格模式。嚴格模式可阻絕惡意的選取子句,投影對應則可阻絕惡意的投影子句。您必須同時使用這兩項功能才能確保查詢安全無虞。 - 您可以防止 SQL 植入攻擊利用
SQLiteDatabase.update
和SQLiteDatabase.delete
,方法是使用選取子句,並且在該子句中利用「?」
做為可替換參數和獨立選取引數陣列。請勿以不受信任的輸入資料建構選取子句。
我們很樂意提供協助
如有關於安全漏洞的技術問題,請前往 Stack Overflow 張貼問題並加上「android-security」標記。如需進一步瞭解這個問題的解決步驟,歡迎與開發人員支援小組聯絡。