我正在考虑使用IDFV创建高级用户帐户,以通过我的iOS应用程序中的Oauth2访问我的REST API。尽管我不太在乎用户通过我的应用程序访问服务的情况,但我想阻止(劝阻)人们自己访问API,但是我不想强迫应用程序的用户“注册”,因此使用IDFV的想法。

但问题是,如果服务器开始接收来自新IDFV的请求,是否可以用我的供应商名称对其进行一些哈希检查,以至少知道有人不只是向我发送了随机生成的请求?

最佳答案

不,IDFV是不透明的值。 UUID中没有关于用于生成它的原始源数据的指示。

IDFV的目的是在某些设备上标识您的应用程序的唯一实例,而不是标识您的应用程序。

我认为,要在应用之外使用您的API的某人可能会从流量捕获开始,最终还是只是重播捕获的IDFV值。

一种替代方法是让您的应用向服务器请求时间敏感的随机数。然后,应用程序必须对该值进行哈希处理,然后将其返回以获取 session 密钥。然后,该应用会在每个请求中都包含该 session 密钥。一段时间后,它必须请求一个新的 session 密钥。

这种方法并不是万无一失的,因为攻击者可能会反编译您的应用程序并确定您的哈希技术,但这肯定会提高标准。

关于ios - 如何验证IDFV的供应商(idenitifierForVendor)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32191611/

10-09 21:56