PHP用户身份验证使用数据库和IP地址?

Jes*_*han 1 php authentication ip-address session-cookies

我一直在考虑用户身份验证,使用会话/ cookie以及会话劫持带来的安全风险所带来的问题.我知道使用安全的https://是最有效的方法,以及regenerate_session_id()和使用随机字符串进行验证(在众多其他程序中).

我的问题是:是否有可能采用放弃会话和cookie的方法,并仅使用数据库保存的变量?

我将如何设置它:

- 在用户表中有一个可以容纳IP地址的列,以及一个布尔值的列.

- 当用户"登录"时,将用户的当前IP地址设置到数据库中,并将布尔值设置为false(如果用户不想被"记住")或者设置为true(如果他们这样做).

- 在页面加载时,它使用存储在用户数据库中的IP地址检查当前IP地址.如果匹配,则认为用户有效.

- 在窗口关闭时,脚本将清除这些值,用户将被"注销".

- 如果用户想要"保持登录状态"(我知道这是一个巨大的安全风险),那么切换(布尔值)将简单地停用注销脚本,并且IP地址将保留为用户存储.

这种方法的后备是什么?它甚至可能吗?

Chr*_*hey 5

IP地址根本不是唯一标识用户的准确可靠方式.IP可能在会话期间发生变化,并且多个用户代理可能正在使用相同的出站IP.

对不起:-)