我创建了一个PHP/MySQL应用程序,它将用于使用用户名和密码登录到用户,但我需要用户登录到系统以生存,甚至关闭浏览器或重新启动设备。
因此,我不能依赖PHP会话。
当然,我可以使用浏览器饼干,但我害怕被偷。
我试图将生成的散列存储在cookie中,并将登录信息存储在数据库中。不幸的是,这是一个潜在的偷取cookie的大问题。
我还根据浏览器版本和用户IP地址测试了此哈希的安全性。不幸的是,应用程序的用户将主要使用移动电话( IP地址将频繁变化),哈希验证只针对浏览器版本对我来说似乎不安全。
有没有办法使用HTML/PHP/MySQL/.创建安全的长期登录机制?
发布于 2019-08-10 12:31:06
您可以抽象地考虑这个问题:您希望根据某些数据识别用户。有两种方法可以做到这一点:
Cookies就是一个例子。--但是如果您使用cookie或其他一些东西,比如JavaScript中的本地存储,这并不重要。您所做的是给浏览器一个值并存储它。所有方法都有相同的风险:价值可能在传输过程中被窃取(当不使用SSL时),或者在存储中被窃取。
对于方法2,有一些东西,比如使用用户的IP地址或其他数据,它们是“意外”生成的。然而,这些都不可靠,您经常会做一些权衡,或者是1和2的组合。
例如,您可以设置cookie,但在服务器端验证IP地址是否相同。这提供了一些额外的安全性,但用户现在不能在手机上使用该应用程序,因为他们每次切换WiFi /移动网络时都会被启动。
如果您想拥有更安全的东西,可以使用存储在HSM上的SSL客户端证书。但是这又是一种权衡,因为它的设置变得越来越复杂,您必须分发和管理硬件。
所有这些方法都无助于对抗受到威胁的客户--即。如果用户在其计算机上有特洛伊木马或其他恶意软件。
https://stackoverflow.com/questions/57440742
复制相似问题