2013-10-29 49 views
-1

我们正在开发用于IOS的应用程序。如何识别IOS中的用户

有无论如何我可以检查设备发送给我的第一次连接到我的服务器的“identifierForVendor”实际上是否有效?

如果没有办法,我该如何确保有人不只是发送POSTS到我的服务器,所以使我创建的设备数据库对象不存在?

我发现的唯一安全的方法是:

1 - 使应用程序要求一个设备令牌到APNS 2-发送它这是我的第一个服务器连接。 3-使用APNs反馈服务进行检查 4-如果令牌正常,请创建设备数据库对象并从此处继续。

每次有人下载应用程序时,苹果都应该让你知道苹果和你的服务器之间的通信中的一些设备供应商ID。

谢谢。

+0

会很好跟踪,但它似乎不是苹果和你的服务器之间。看到这个一个:http://stackoverflow.com/questions/19460878/api-based-on-user-ip-address/19461599#19461599 –

回答

0

最简单的解决方案是将“identifierForVendor”附加到您可以从您的应用中识别的内容。例如,如果附加一个字母数字字符串,如下所示:“A1B2C3D4E5F6G7”为“A1B2C3D4E5F6G7-fromMyApp”,那么除非用户有权访问您的代码,否则无法知道自定义附加字符串是什么。

当然还有更复杂的解决方案,如果您真的担心人们为了查找字符串而监控来自应用程序的流量。

+0

可能也使它成为一个公共的API,因为谁想要关键还得它。 –

+0

谢谢。我们已经考虑过这个选择,但 这不是我要问的。 迄今为止,通知APNs解决方案已成为赢家,但它可能会减少从我的用户收集的数据量或使应用程序变慢。 我想我们可以制作设备对象并将它们标记为NOT_VERIFIED,然后使用反馈系统来验证它们。 苹果给你选择添加一个URL到你的应用配置是非常容易的,每当有人下载​​它时,它就会用设备应用标识符击中你。这就是我认为它存在的原因。 –

0

您是否知道注册远程通知会提示用户是否允许该应用的远程通知。如果他们选择否,则不会生成令牌。

此外,他们可以从电线上嗅出令牌。你打算根据他们的令牌跟踪滥用和阻止用户吗?您是否知道某些操作会导致生成新令牌,如重置设备?

您可以生成唯一的ID(UUID)或使用identifierForVendor,并将其存储在用户的密钥存储区中,然后使用它来按设备进行跟踪。它仍然是匿名的,重置设备会重置此设置,但如果您要跟踪滥用者,则可以阻止他们,并且必须重置设备以再次尝试。这与APN令牌没有多大区别。它仍然可以被嗅探,他们仍然可以重置它。但至少用户不必肯定是否允许远程通知。

如果你发送任何类型的令牌,你应该使用HTTPS(SSL/TLS),而不是保护用户不受他们的影响(他们仍然可以通过在中间人攻击中自己的人来嗅探令牌,除非你是验证服务器的身份),但这是为了保护人们免受同一网络上的恶意用户的侵害。你不想阻止一些无辜的用户,因为他们碰巧在公共网络上使用你的应用程序,并无意中分享了他们的令牌。

当然,如果我们正在谈论一个监狱破碎设备,所有投注都关闭。