限制登录尝试次数

时间:2013-05-16 15:16:22

标签: ios

我有一个应用程序,其中有一个登录屏幕。我想在我的应用程序中添加一个限制一次最大登录尝试次数的功能。例如,如果用户尝试使用错误的user name和/或password登录超过5次,则会弹出一条消息,指出您在接下来的60秒内无法登录。如果他在60秒内尝试,那么他应该无法登录。 60秒后,他应该能够使用正确的密码进行操作。

5 个答案:

答案 0 :(得分:0)

应该像创建实例变量int一样简单,并在每次登录失败后递增它,如果它命中5阻止登录尝试,同时触发NSTimer在60秒后将计数擦除为0。

答案 1 :(得分:0)

保存上次尝试失败并尝试计入默认值。

答案 2 :(得分:0)

您可以使用NSTimer来强制执行时间限制。 在一个简单的例子中,每次登录尝试失败时都会增加一个计数器。 在第6次尝试时,将标志设置为NO,然后启动计时器。 标志为“否”时的任何进一步尝试都将被拒绝。 当计时器触发时,它将标志启动为YES,用户可以重试。

答案 3 :(得分:0)

就像一个概念:

start a session for the login process if there is none;
setting up the timer in that session (startime) if not already set

loop by post to self:

    check login;

    on unsuccessfull login:

        counting unsuccessfull logins;
        if timer / counter are hit, instead of presenting the login fields, 
        show an error message;
        if time of no login is reached, show login fields again, reset counter;
        return;

    on successfull login:

        stop and drop the current session (to get rid of the timer stuff);
        start the real session;
        forward to application screen;

但: 这不会阻止任何人蛮力你的应用程序,因为这一切都取决于会话cookie。通常这些bf攻击不会返回任何cookie,因此他们将始终首次尝试启动新会话。付出很多努力,没有效果。依靠IP地址也没有帮助,如果你受到僵尸网络的攻击,你将每秒从各种IP获得100个请求。

我建议在登录窗口/屏幕中有一些喜欢 CSRF令牌

答案 4 :(得分:0)

如果您的登录来自服务,最好在那里处理。您放入NSUserDefaults的任何内容都可以被读取并可能被更改。

相关问题