Insecure Shared Preferences Permissions
Permisos inseguros en Shared Preferences
Descripción
Configurar las Shared Preferences con permisos inseguros, ya sea de lectura pública (world-readable) o escritura pública (world-writable), puede exponer la información confidencial almacenada en las preferencias compartidas a lecturas o escrituras arbitrarias por parte de un atacante malicioso.
Recomendación
Las Shared Preferences son archivos XML que se utilizan para almacenar datos primitivos privados en pares clave-valor. Los tipos de datos incluyen booleanos, flotantes, enteros (ints), largos (longs) y cadenas (strings).
Las Shared Preferences nunca deben configurarse con el permiso MODE_WORLD_READABLE o MODE_WORLD_READABLE (escritura pública), a menos que se requiera explícitamente para compartir información entre aplicaciones.
En su lugar, los permisos compartidos deben tener el modo MODE_PRIVATE (modo predeterminado); este modo significa que solo la aplicación que creó las Shared Preferences puede acceder a ellas o modificarlas.
SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("language", "en-US");
editor.apply();
Enlaces
Estándares
- OWASP_MASVS_L1:
- MSTG_PLATFORM_4
- OWASP_MASVS_L2:
- MSTG_PLATFORM_4
- CWE_TOP_25:
- CWE_276
- GDPR:
- ART_5
- ART_32
- PCI_STANDARDS:
- REQ_2_2
- REQ_6_2
- REQ_6_3
- REQ_7_3
- REQ_11_3
- OWASP_MASVS_v2_1:
- MASVS_PLATFORM_1
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_6_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5
- HIPAA_CONTROLS:
- SECURITY251
- SECURITY221
- SECURITY212
- SECURITY213