程序試圖在不請求所需權限的情況下執行操作。
某些 Android 操作需要相應的權限。必須由應用程序在安裝時請求權限,方法是通過 <uses-permission/> 標簽在 AndroidManifest.xml 文件中將其列出。如果未請求所需的權限,需要這些權限的操作在運行時就會失敗。在某些情況下,java.lang.SecurityException 會被拋回到應用程序。在其他情況下,操作會在不提示且未拋出任何異常的情況下失敗。
例 1:下面的代碼可讀取設備中存儲的聯系人信息。
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
android.permission.READ_CONTACTS 權限。如果清單文件中的應用程序未請求此權限,應用程序就無法讀取聯系人信息。
[1] Standards Mapping - OWASP Top 10 2004 - (OWASP 2004) A2 Broken Access Control
[2] Standards Mapping - OWASP Top 10 2010 - (OWASP 2010) A6 Security Misconfiguration
[3] Standards Mapping - FIPS200 - (FISMA) AC
[4] A. P. Felt, E. Chin, S. Hanna, D. Song, and D. Wagner Android Permissions Demystified
[5] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 265
[6] Standards Mapping - SANS Top 25 2009 - (SANS 2009) Improper Access Control - CWE ID 285
[7] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 - (PCI 1.1) Requirement 6.5.10
[8] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 - (PCI 1.2) Requirement 7.1.1
[9] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 - (PCI 2.0) Requirement 7.1.1
[10] Using Permissions