跳转至

iOS URL Scheme Injection

iOS Custom URL Scheme 注入

描述

自定义 URL scheme 提供了一种引用 iOS 应用程序内部资源的方法。例如,用户在电子邮件中点击自定义 URL 会在指定的上下文中启动应用程序。其他应用程序也可以触发另一个应用程序以使用特定的上下文数据启动它;例如,照片库应用程序可能会显示指定的图像。

URL scheme 为 iOS 应用程序提供了潜在的攻击向量,并且默认情况下容易受到 Scheme Hijacking 的影响。

因此,应用程序需要确保验证所有 URL 参数并丢弃任何格式错误的 URL。此外,将可用操作限制为不会对用户数据构成风险的操作。例如,不允许其他应用程序直接删除内容或访问有关用户的敏感信息。

建议

要减轻与 iOS 应用程序中的 URL scheme 相关的潜在风险,请考虑:

  1. 使用 Universal Links: Universal Links 允许您在应用程序和网站之间创建双向关联,并指定应用程序处理的 URL,从而防止其他应用程序劫持它们。

  2. 验证 URL 参数: 对您的应用程序接收的所有 URL 参数实施彻底的验证检查。确保参数符合预期的格式,并且不包含任何恶意有效载荷或意外数据。

  3. 限制可用操作: 评估由自定义 URL scheme 触发的每个操作的潜在影响,并限制对不会对用户数据构成风险或损害应用程序安全性的操作的访问。

链接

标准

  • OWASP_MASVS_L1:
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_PLATFORM_2
  • CWE_TOP_25:
    • CWE_20
  • GDPR:
    • ART_5
    • ART_32
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_CODE_4
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_7_5
  • HIPAA_CONTROLS:
    • SECURITY221
    • SECURITY212
    • SECURITY213