SuperAPI AI 工具集

rc-security

安全与审计

查看项目

更新于 10-14 15:42

技能介绍

用途

rc-security 是一个用于加固 Android 平台上 RevenueCat 集成的技能。它围绕安全姿态审计展开,目标包括验证模式(Entitlement Verification Mode)、API 密钥管理、用户身份识别,以及服务端访问决策。

主要能力与覆盖范围

该技能首先梳理 RevenueCat 后台已经负责的安全环节,以便聚焦真正的缺口:

  • Google Play 收据校验:由 RevenueCat 后台在 awaitPurchase() 返回前执行。
  • 购买令牌重用:令牌在服务端去重。
  • 伪造购买令牌:无法通过 Google Play 验证,不授予权益。
  • 到 RevenueCat 的 HTTPS 传输:由 SDK 始终开启。
  • 网络失败后的令牌重试:SDK 在下次应用启动时重试。

随后它引导对项目提出关键问题:是否设置了 EntitlementVerificationMode;SDK 是否使用以 goog_ 开头的公开 Android 密钥,或误将密钥粘贴到客户端;真实用户是否通过 Purchases.logIn(yourUserId) 识别,还是仍依赖匿名 $RCAnonymousID:...;提供付费内容的服务端端点是否在服务端校验权益,还是信任客户端传来的标记。

使用方式

技能按阶段推进:

Phase 0 Intent:告知用户将审查 Android 上的 RevenueCat 安全姿态,包括验证模式、API 密钥、用户身份和服务端访问决策。

Phase 1 Discovery:确认 RevenueCat 已覆盖的内容,聚焦真实缺口。

Phase 2 Plan:在改代码前决定三件事。

  • 决策 A:权益验证模式。DISABLED(默认,无签名,仅用于快速原型);INFORMATIONAL(记录日志但仍授予访问,用于在不冒真实用户误拒风险的前提下收集信号);ENFORCED(EntitlementInfo.isActive 返回 false,以严格客户端保证换取代理或 VPN 带来的一些误判)。
  • 决策 B:权限归属。即便使用 ENFORCED,客户端也不是付费内容的权威。需决定每个付费端点是每次请求调用 RevenueCat REST API,还是读取由 RevenueCat webhook 驱动的本地 has_entitlement 标记。选项 2 请求时成本更低,选项 1 无缓存陈旧问题。选一种并记录,不要无理由地按端点混用。
  • 决策 C:用户身份。生产环境应使用自有认证用户 id 调用 Purchases.logIn("your_user_id")。匿名 id 是设备级标识符,不是凭证,同一设备的多个用户会共享。

Phase 3 Execute

  • 开启响应验证:在 PurchasesConfiguration 中添加验证模式,并在检查权益时读取 customerInfo.entitlements.verification(VERIFIED、FAILED、NOT_REQUESTED、VERIFIED_ON_DEVICE)。在有遥测确认真实流量中 FAILED 很少后,升级到 ENFORCED;在 ENFORCED 下签名失败会使相关权益的 isActive 变为 false。
  • 正确放置 API 密钥:以 goog_... 开头的公开 Android SDK 密钥嵌入应用二进制,仅能为调用用户读取和购买;密钥 REST API key 应放在服务器、密钥管理器或环境变量中,拥有完整 REST API、管理操作、授予权益的能力。不要在应用仓库提交密钥,发布前 grep 源码树确认密钥前缀零命中。
  • 识别真实用户:一旦有认证用户 id 就调用 logIn,不要将匿名 id 当作凭证。
  • 在服务端而非客户端强制执行:每个提供付费内容的服务端端点都要在服务端校验权益,例如通过 revenuecat.get_subscriber(user_id) 检查 info.entitlements["pro"].is_active,或读取由 webhook 驱动的本地 has_pro 标记并逐请求检查。

Phase 4 Verify:核对 Android 源码只含公开密钥、密钥 grep 干净;已设置 EntitlementVerificationMode(非 DISABLED)并关注 FAILED 遥测;真实用户通过 Purchases.logIn 识别,匿名 id 仅用于登录前流程;服务端每个付费端点通过 REST API 或 webhook 驱动标记校验权益,无端点信任客户端 header。

适用场景

适用于在 Android 上加固 RevenueCat 集成的安全审计与实施,包括购买验证、密钥治理、用户身份与服务端权限校验。

限制

该技能聚焦 Android 平台。资料未提供具体定价、性能数据或非 Android 平台的支持说明。