阻止其他用户使用我的身份验证访问Rails应用程序

时间:2013-04-02 05:46:07

标签: ruby-on-rails web-applications authorization login-control

我已经托管了一个rails应用程序,一个在线考试系统。用户需要注册才能访问系统。因此,每个用户都将获得一个独特的凭证组合。我们假设user-name/passworddemo/demo123。我希望我的应用程序阻止另一个人登录系统,即使他知道我的凭据。这种情况的任何解决方案。

感谢您的帮助:) -

3 个答案:

答案 0 :(得分:2)

使用Cookie将是一个更好的解决方案。当用户注册时,以加密格式(出于安全原因)创建特定于用户和系统的Cookie值,并将其保存在与该用户对应的数据库中。登录时检查此Cookie令牌。当用户清除cookie时,s(他)可以请求管理员清除DB cookie以创建新cookie。

使用IP不是更好的解决方案,因为在网络中,可以将动态IP分配给PC。

答案 1 :(得分:1)

您可以在首次登录时在数据库中记录用户的IP地址,并且只允许使用相同的凭据登录,但是在等待一段时间之后从 IP地址登录小时,或直到目前的检查完成。这应该可以防止多个用户在短时间内登录到同一个用户帐户。

可以使用request.remote_ip在Rails控制器中访问用户的IP地址。

答案 2 :(得分:1)

您可以使用lock gem为整个应用程序添加密码。

首先,添加到您的Gemfile。

gem 'lock'

然后

bundle install

接下来,创建密码

rails g lock:create_password_file yourpasswordhere

最后,添加锁定您的应用程序控制器或任何您想要的内容(请参阅documentation)。

ApplicationController < ActionController::Base
  lock
end