跳转至

Insecure Shared Preferences Permissions

不安全的Shared Preferences权限

描述

将Shared Preferences设置为全局可读或全局可写等不安全权限,可能会导致存储在其中的敏感信息面临被恶意攻击者任意读取或写入的风险。

建议

Shared Preferences是用于以键值对形式存储私有基础数据的XML文件。数据类型包括布尔值、浮点数、整数(ints)、长整数(longs)和字符串(strings)。

除非明确需要跨应用程序共享信息,否则绝不得将Shared Preferences设置为 MODE_WORLD_READABLEMODE_WORLD_READABLE(全局可写)权限。

相反,共享权限应采用 MODE_PRIVATE 模式(默认模式),该模式意味着只有创建了该Shared Preferences的应用程序才能访问或修改它们。

  SharedPreferences sharedPreferences = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
  SharedPreferences.Editor editor = sharedPreferences.edit();
  editor.putString("language", "en-US");
  editor.apply();

链接

标准

  • 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