2

我正在制作一个允许用户保持登录状态的 php 页面,并且我正在检查用户当前的 IP 与存储在 sql 表中的 IP。

我将用户 ID 存储在 cookie 中而不是 ip 中。

我还应该做哪些其他检查?因为我认为现在 IP 还不够。

4

4 回答 4

2

它依赖于 cookie 使用户保持登录您的应用程序或网站。用户的 IP 可能会发生变化,因此无法获得此功能。它只是写cookie,然后在登录时读取它。

于 2012-12-01T21:34:18.427 回答
0

您可能希望将用户详细信息存储在会话中。Cookie 相对不安全,可用于提权。

于 2012-12-01T21:40:21.167 回答
0

散列会话 cookie 有利于保持用户登录。这是因为 cookie 保留在用户的计算机上,并允许它访问会话数据。散列它增加了一层安全性。

用户的 IP 地址不如 cookie 或会话变量好。一方面,它可以改变(就像智能手机从一个塔的范围移动到另一个塔一样)。另一方面,它可以被共享(就像在同一个无线路由器上的多个用户一样)。最后,IP 地址可以被欺骗。

另一方面,会话只会在浏览器打开时持续(取决于服务器端设置的会话超时)。在这种情况下,会话建立一个会话 cookie,允许浏览器指向服务器上的会话数据。

会话数据更加安全,因为在浏览器会话期间,只有一个会话 cookie 是驻留在用户机器上的所有内容。这样您就可以在服务器上存储更敏感的数据(用户名、个人身份信息或帐户数据)。

访问会话数据的唯一方法是通过该用户的一个会话 cookie,它通常是一串很长的随机字符。散列它使得解读变得非常困难。

于 2015-06-15T15:53:15.090 回答
0

IP 可以更改,因此使用 IP 来“保持登录”不是一个好主意。最好的方法是在 cookie 中使用 API 密钥。这种方式允许用户即使在更改 IP 时也可以登录(例如当他们连接到代理时)。请参阅下面的问题: “让我登录” - 最好的方法

于 2019-05-09T09:10:38.043 回答