我的要求是我有一部分网站应该允许用户只从一个系统访问。他可能使用不同的IP和不同的,如果系统相同,他应该能够获得访问权限。我的网站是PHP版。做一些R& D我发现JS这有助于在访问者使用IE时获取MAC地址。我的情况是我不能限制用户使用IE浏览器。他可以使用任何浏览器。有没有办法获得MAC地址。如果不可能,我应该如何限制同一用户访问不同计算机上的内容。
答案 0 :(得分:2)
没有。 MAC地址在本地网络之外没有用处,因此它们在上层(例如,应用层)中不可用。使用Javascript来获取地址也不是万无一失,因为对于某人来说操作起来非常容易。
如果要限制用户可以访问您网站的主机,则需要在浏览器中使用存储持久性方法来存储密钥 - 这是唯一标识它们的方法。一些论坛使用这种方法来捕捉试图绕过禁令的人。
您应该生成某种随机密钥(或加密字符串),将其与您要识别的用户一起存储在服务器端,然后为用户提供存储在cookie / localStorage中的密钥。 / p>
尽管如此,用户清除其Cookie存在明显的问题......
希望这会让你有点先发制人。
答案 1 :(得分:1)
Daniel是正确的,尝试使用MAC地址是不切实际的。
出于您的目的,您可能想要使用几个图层。 Cookies是一个很好的起点。如上所述,他们可以被清除。用户也可能关闭了cookie。 Cookie也以纯文本形式存储在他们的计算机上,用户可以很容易地修改它们。
您还可以使用PHP实现会话。每个会话对于每个系统和浏览器都是唯一的。如果用户切换浏览器或重新启动其当前浏览器,则会重新创建会话。
您还可以检查其用户代理字符串。每个浏览器都会有所不同,并且每个系统“最有可能”,但它很容易被欺骗。
您也可以使用公钥/私钥交换,但实施和管理可能会很麻烦。
确实没有一个万无一失的解决方案。最好的选择可能是使用各种技术组合,尽可能“接近万无一失”。尽量不要让用户太不方便。