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

Ruby on rails 使用我的身份验证阻止其他用户访问Rails应用程序,ruby-on-rails,web-applications,authorization,login-control,Ruby On Rails,Web Applications,Authorization,Login Control,我主持了一个rails应用程序,一个在线考试系统。用户需要注册才能访问系统。因此,将为每个用户提供唯一的凭据组合。假设我的用户名/密码是demo/demo123。我希望我的应用程序阻止其他人登录系统,即使他知道我的凭据。这种情况下的任何解决方案 感谢您的帮助:)-您可以在用户首次登录时将其IP地址记录在数据库中,并且只允许使用相同的凭据登录,但在等待一段时间(例如1小时)后或直到当前检查完成后,才允许从新的IP地址登录。这将防止多个用户在短时间内登录到同一用户帐户 用户的IP地址可以使用请求在R

我主持了一个rails应用程序,一个在线考试系统。用户需要注册才能访问系统。因此,将为每个用户提供唯一的凭据组合。假设我的
用户名/密码
demo/demo123
。我希望我的应用程序阻止其他人登录系统,即使他知道我的凭据。这种情况下的任何解决方案


感谢您的帮助:)-

您可以在用户首次登录时将其IP地址记录在数据库中,并且只允许使用相同的凭据登录,但在等待一段时间(例如1小时)后或直到当前检查完成后,才允许从新的IP地址登录。这将防止多个用户在短时间内登录到同一用户帐户


用户的IP地址可以使用
请求在Rails控制器中访问。远程IP

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

用户的IP地址可以通过请求在Rails控制器中访问。远程IP可以使用gem向整个应用程序添加密码

首先,添加到您的文件中

gem 'lock'
然后

接下来,创建您的密码

rails g lock:create_password_file yourpasswordhere
最后,将锁添加到应用程序控制器或任何您想要的(请参阅)

ApplicationController
您可以使用gem向整个应用程序添加密码

首先,添加到您的文件中

gem 'lock'
然后

接下来,创建您的密码

rails g lock:create_password_file yourpasswordhere
最后,将锁添加到应用程序控制器或任何您想要的(请参阅)

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


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

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


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

请理解问题,然后回答。抱歉,我不理解@Rajesh。它确实“阻止其他人登录系统,即使他知道我的凭据。”我不想锁定我的应用程序。我想阻止其他人使用我的凭据登录。因此,如果其他人有自己的凭据,他们就可以登录到应用程序。希望你明白了。请理解问题,然后回答。对不起,我不明白@Rajesh。它确实“阻止其他人登录系统,即使他知道我的凭据。”我不想锁定我的应用程序。我想阻止其他人使用我的凭据登录。因此,如果其他人有自己的凭据,他们就可以登录到应用程序。希望你明白了。这在使用动态ip时不会造成其他困难吗?但是,您可以检查用户是否已经登录,或者在登录字段中添加额外的密码短语。这在使用动态ip时不会导致其他困难吗?但是,您可以检查用户是否已登录,或在登录字段中添加额外的密码短语。但动态分配IP并不意味着不安全,因为将通过DHCP服务器为每台计算机分配唯一的IP。如果你试图阻止一个人在考试中与另一个人合作,他们难道不能读取浏览器cookie并将其发送给其他人吗?这似乎是一个潜在的安全漏洞,而IP更难伪造。但动态分配IP并不意味着它不安全,因为唯一的IP将通过DHCP服务器分配给每台机器。如果你试图阻止一个人在考试中与另一个人合作,他们难道不能读取浏览器cookie并将其发送给其他人吗?这似乎是一个潜在的安全漏洞,而IP更难伪造。