最近我遇到了一个针对诺基亚Asha的旧项目,其中有应用程序跟踪。
对于用户访问的每个屏幕,都会向分析服务报告Http请求,其中一个参数是移动设备中的IMEI。
据我所知,不允许在Windows Phone和iPhone上检索IMEI等信息,但在Android上它仍然是一个可用的功能,但需要获得读取手机状态和身份的权限。 39;被告知吓唬了一些用户。
从我所看到的情况来看,不鼓励使用这类信息,在这种情况下,当涉及到分析服务或类似服务时,更多鼓励采用哪些替代方案来识别设备?
答案 0 :(得分:1)
您可以使用随机ID 来识别每个客户。
赔率:使用64位随机ID(例如,使用nextLong()
),意外碰撞的几率非常小。您需要40亿客户才能将第一次意外碰撞的概率提高到1/2。这足以进行分析。
实施:如果HTTP请求还没有,那么服务器可以使用Java的SecureRandom生成ID并将其放在HTTP回复的cookie中。无论哪种方式,分析都会将该请求与该cookie相关联。
如果客户端是本机应用程序而不是Web应用程序,则需要存储cookie并将其附加到未来的HTTP请求中。
备选方案:如果用户需要登录您的应用,则可以将使用情况与其登录ID相关联。否则,生成令牌。
有许多理由不向用户询问他们的手机号码,包括隐私,可靠性和烦人。许多潜在用户将退出而不是输入他们的手机号码,而其他人将输入类似所有用户的东西。随机ID将更加独特。
如果您需要通过短信进行帐户验证,那么您必须要求提供电话号码。在这种情况下,您需要一个隐私政策,一个数据保留政策和计划,加密存储,您必须向用户解释,并应对大量的辍学。
即使您没有保留电话号码,也可以构建一个单向安全哈希,用于客户端ID,但电话号码可以长期循环使用,随机ID将比经过验证的电话号码更独特。