【发布时间】:2017-06-11 22:03:50
【问题描述】:
注意:这是一个逻辑/安全问题,而不是 PHP 的真正“操作方法”。
首先是背景...
我想限制对公司 INTRAnet 网站的访问,仅限使用公司计算机(Windows 或 Linux)并且“在办公室”或通过 VPN 远程连接到我们公司网络的人员。
目前,用户使用他们的公司用户名和密码登录,这些用户名和密码通过 LDAP 进行身份验证,用于每个会话。我想让他们的生活更轻松一些,并允许他们在登录时使用“记住我”选项,然后将一些信息存储在 cookie 中。
我想放入 cookie 中的信息是他们的用户名和客户端 IP 地址或客户端 MAC 地址,并设置例如 30 天的有效期。在随后的登录中,此 cookie 的存在表明正在使用有效的用户和有效的客户端,因此无需再次登录(直通)。
现在问题...
如果客户端被授权并连接到我们的公司网络,那么来自 PHP 的系统调用是否只会返回 IP 或 MAC 地址?如果这是真的,那么通过反向逻辑,从这些地址中的一个或两个获得空返回值意味着客户端计算机无权连接到我们的公司网络 - 是否正确?有没有更好的方法(更安全的方法,无需用户强制登录每个会话)来解决这个问题?
提前致谢。
【问题讨论】:
-
只为会话 cookie 提供用户名和 MAC 是个坏主意,改为生成唯一的哈希