【发布时间】:2015-09-17 22:49:26
【问题描述】:
我有一个 iOS 应用程序,我希望用户用 1 到 5 的评分对特定事物进行评分。它旨在无需登录即可工作。
问题是我想唯一地识别每个用户,这样没有人可以滥用系统并对同一事物进行两次评分和/或只是向服务器发送虚假评分的垃圾邮件。
所以我需要一个标识符
- 唯一(用户不应因为系统认为他已经投票而被拒绝投票)
- 重新安装后可恢复(以防止“重新安装和撤销”)
- 可验证(以防止向服务器发送一些带有一些虚假标识符和垃圾邮件评级的大量请求)
我知道这是不可能的!为了安全地做到这一点,如果某个聪明的男孩/女孩真的想要它,他可以破坏系统。但我想要一些尽可能安全的系统来识别用户。此外,当有人开始发送垃圾评级而我无法控制时,它可能会破坏整个系统。
我还考虑过只向用户询问电子邮件并从设备生成密码。因此,用户只需输入他的电子邮件地址,然后设备就会连接到该电子邮件地址。也许使用MAC地址?不过话说回来,这个也是可以改变的。
我知道以下属性不起作用:
- IP 地址(很容易更改,而且更改很多。而且它不是唯一的)
- UUID(无法验证。有人可以生成一些随机的 X 长度数字)
- https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/index.html#//apple_ref/occ/instp/UIDevice/identifierForVendor(未满 2. 和 3.)
Identifying anonymous users 并没有真正帮助我。
那么我可以尝试使用什么?所有这些的组合?是否有一些关于如何计算这些身份验证令牌的指南?
“没有人会尝试破解你的应用程序”或“你的应用程序很烂”这样的答案是不受欢迎的,因为这也是一个科学问题。
【问题讨论】:
标签: ios iphone security authentication uniqueidentifier