在iOS

时间:2015-09-17 22:49:26

标签: ios iphone security authentication uniqueidentifier

我有一个iOS应用程序,我希望用户对评分为1到5的特定事物进行评级。这意味着无需登录即可工作。

问题在于我想要唯一地识别每个用户,以便没有人可以滥用系统并对同一件事件进行两次评级和/或仅使用虚假评级向服务器发送垃圾邮件。

所以我需要一个

的标识符
  1. 独特(不应拒绝用户投票,因为系统认为他已投票)
  2. 重新安装后可恢复(防止"重新安装并重新启动")
  3. 可验证(为了防止向服务器发送一些带有虚假标识符和垃圾邮件评级的大量请求)
  4. 我知道这是不可能的!为了安全地做到这一点,如果一些聪明的家伙/女孩真的想要它,他可以破坏系统。但我想要一些安全的系统让我识别用户。此外,当有人开始垃圾评级时,它可以打破整个系统,我无法控制它。

    此外,我还想过只询问用户的电子邮件并从设备生成密码。因此,用户只需输入他的电子邮件地址,然后设备就会连接到该电子邮件地址。也许使用MAC地址?但是,这一次也是可以改变的。

    我知道以下属性不起作用:

    Identifying anonymous users对我没有帮助。

    那么我可以尝试使用什么?所有这些的组合?是否有关于如何计算这类身份验证令牌的指南?

    答案喜欢"没有人会试图破解你推迟的应用程序"或者"你的应用程序总是很糟糕"不受欢迎,因为这也是一个科学问题。

1 个答案:

答案 0 :(得分:0)

您可以发送Vendor ID以及该用户的ratings。如果有任何用户费率,请尝试检查数据库服务器是否存在此供应商ID。如果存在,请提示“您已评级”的消息。简而言之,您可以使用供应商ID来唯一标识特定用户。

以下是获取供应商ID的方法:

NSString *udid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];