我一直在考虑用户身份验证、使用会话/cookies 以及会话劫持带来的安全风险。我知道使用安全的 https:// 是最有效的方法,以及 regenerate_session_id() 和使用随机字符串进行验证(在众多附加程序中)。
我的问题是:是否有可能合并一种放弃会话和 cookie 并仅使用数据库保存变量的方法?
这是我将如何设置它:
- 在用户表中有一个可以保存 IP 地址的列,以及一个布尔值。
-当用户“登录”时,将用户的当前IP地址设置到数据库中,并将布尔值设置为false(如果用户不想被“记住”)或true(如果他们愿意)。
- 在页面加载时,它会检查当前 IP 地址与存储在用户数据库中的 IP 地址。如果匹配,则认为用户有效。
-在窗口关闭时,脚本将清除这些值,用户将被“注销”。
- 如果用户想要“保持登录状态”(我知道这是一个巨大的安全风险),那么切换(布尔值)将简单地停用注销脚本,并且 IP 地址将为用户保留存储。
这种方法的回退是什么?甚至可能吗?