0

随着 Android O 中的更改,ANDROID_ID 现在按应用签名密钥以及按用户进行限定。恢复出厂设置也会生成新的 ANDROID_ID 值。

我的问题是,除了 Android ID,你们还使用什么其他替代 ID(更有效)?

我做了一些研究得知谷歌建议我们使用 AdvertisingId,但用户可以随时重置他们的 AdvertisingId。

我还查看了 Key/Value 备份以备份现有的 Android ID 并将其与新值相关联。这种方法很好,但备份与 Google 帐户相关联。因此,如果用户重置设备并使用不同的 Google 帐户登录,这将不起作用。

我的目标是获取用于欺诈/恶意检测的设备特定标识符,我很难确定要使用哪种标识符。我知道我可以只使用 IMEI,但谷歌建议避免使用它,它也需要android.permission.READ_PHONE_STATE许可。

4

1 回答 1

0

唯一标识符的最佳实践文章有一个专门的反欺诈用例:

反欺诈:实施免费内容限制并检测 Sybil 攻击

在这种情况下,您希望限制用户可以在设备上看到的免费内容的数量,例如文章。

使用:实例 ID 或 GUID。在 Android 8.0(API 级别 26)及更高版本上,SSAID 也是一个选项,因为它的范围是应用签名密钥。

为什么这个建议?

使用 GUID 或实例 ID 会强制用户重新安装应用程序以规避内容限制,这足以阻止大多数人。如果这还不够保护,Android 提供了一个 DRM API,可用于限制对内容的访问,包括每个 APK 标识符,即 Widevine ID。


请注意,SSAID == Storage.Secure.ANDROID_ID。

于 2019-10-09T16:36:33.623 回答