【发布时间】:2013-12-16 13:18:05
【问题描述】:
我的网站中有登录系统,用户必须为使用我的网站付费。由于他们必须付费,恐怕一个用户可能会与其他用户共享他的用户名和密码。所以我必须将我的登录系统设置为没有用户一次可以使用多个浏览器。但他们可以不时更换浏览器(不是在同一时间,而是一天中的不同时段)。我怎样才能通过php实现呢?有什么想法吗?
【问题讨论】:
我的网站中有登录系统,用户必须为使用我的网站付费。由于他们必须付费,恐怕一个用户可能会与其他用户共享他的用户名和密码。所以我必须将我的登录系统设置为没有用户一次可以使用多个浏览器。但他们可以不时更换浏览器(不是在同一时间,而是一天中的不同时段)。我怎样才能通过php实现呢?有什么想法吗?
【问题讨论】:
使用辅助 javascript 预加载器收集非个人浏览器信息并根据登录时间/帐户/IP/浏览器信息生成哈希。
在服务器端检查每个用户帐户一次不超过一个活动的哈希值,如果发生这种情况,则强制注销以前的哈希值。使用另一个客户端 javascript 定期 ping 服务器并检查哈希唯一性并无缝重新登录合法用户以获取“动态 IP”用例。
因此,如果用户与另一个用户共享他的帐户,他们将不断地“踢”对方离开网站,直到厌烦到为第二个帐户付费。
【讨论】:
您可以在他们登录时从他们的会话 ID 生成令牌/哈希。将此令牌添加为 cookie 值,然后将其存储在数据库中。如果用户已登录并且他们的 cookie 值与存储在数据库中的值不匹配,那么他们可能在其他地方登录。
【讨论】:
尝试检查 ip,或使用 2 因素身份验证。
(例如要求用户点击电子邮件中的链接登录)
【讨论】:
我想到的唯一方法是,一旦用户登录,您可以在数据库中保留一个标志(一个表列)。因此,如果他尝试再次登录,您将检查标志是否已设置。如果设置了,那么你可以给出错误..并记住在用户注销后重置该标志..
【讨论】:
检测他的 IP 并在每次更改时让他添加计算机(就像 Steam 所做的那样)并设置一个带有最后访问日期的标志。如果在 10 分钟内他只访问 1 的其他“计算机”没有任何活动,他所做的每个操作都会更新字段(如在线系统),你无法阻止这种情况,因为人们可能是无知的,即使你让他们输入合理的数据让他在提供他的证书时更加怀疑是徒劳的......
【讨论】: