【发布时间】:2012-06-20 01:31:34
【问题描述】:
我一直在考虑用户身份验证、使用会话/cookie 以及会话劫持带来的安全风险。我知道使用安全的 https:// 是最有效的方法,以及 regenerate_session_id() 和使用随机字符串进行验证(在众多附加程序中)。
我的问题是:是否有可能合并一个放弃会话和 cookie 并仅使用数据库保存变量的方法?
以下是我的设置方式:
-在用户表中有一个可以保存 IP 地址的列,并且可以是一个布尔值。
-当用户“登录”时,将用户当前的IP地址设置到数据库中,并将布尔值设置为false(如果用户不想被“记住”)或true (如果他们这样做)。
-在页面加载时,它会检查当前 IP 地址与存储在用户数据库中的 IP 地址。如果匹配,则认为该用户有效。
-在窗口关闭时,脚本将清除这些值,用户将被“注销”。
-如果用户想要“保持登录状态”(我知道这是一个巨大的安全风险),那么切换(布尔值)将简单地停用注销脚本并且 IP 地址将保持存储用户。
这种方法的回退是什么?有没有可能?
【问题讨论】:
-
动态和共享 IP 会导致严重的问题是这种方式
-
是的,我曾希望有一种方法可以专门识别计算机,但我很快意识到这样的概念不可能安全地工作,更不用说一致了。
标签: php ip-address session-cookies authentication