我托管了一个 Rails 应用程序,一个在线考试系统。用户需要注册才能访问系统。因此,将为每个用户提供唯一的凭据组合。让我们假设我user-name/password
的是demo/demo123
。我希望我的应用程序阻止其他人登录系统,即使他知道我的凭据。这种情况的任何解决方案。
谢谢你的帮助 :)-
我托管了一个 Rails 应用程序,一个在线考试系统。用户需要注册才能访问系统。因此,将为每个用户提供唯一的凭据组合。让我们假设我user-name/password
的是demo/demo123
。我希望我的应用程序阻止其他人登录系统,即使他知道我的凭据。这种情况的任何解决方案。
谢谢你的帮助 :)-
使用 Cookie 将是一个更好的解决方案。当用户注册时,创建一个特定于用户和系统的 Cookie 值,并以加密格式(出于安全原因)并将其保存在与该用户对应的数据库中。登录时检查此 Cookie 令牌。当用户清除 cookie 时,他(他)可以请求管理员清除 DB cookie 以创建新的。
使用 IP 不会是更好的解决方案,因为在网络中,可以为 PC 分配动态 IP。
您可以在用户首次登录时将其 IP 地址记录在数据库中,并且仅允许在等待一段时间(例如 1 小时)或直到当前检查完成后使用相同的凭据但从新的 IP 地址登录。这应该可以防止多个用户在短时间内登录到同一个用户帐户。
用户的 IP 地址可以在 Rails 控制器中使用request.remote_ip
.