如何阻止在同一台机器上运行的多个浏览器访问某个网页?

时间:2014-05-31 09:43:42

标签: php http session cookies web

我的应用程序要求在一台PC上运行的多个浏览器中只有一个(第一个)能够访问某个网页,而其他浏览器的请求是否被阻止/不被服务?反正有没有使用PHP这样做?有没有办法做到这一点,即使我不限制自己的PHP?我已经查看了会话和cookie但是似乎并不是一种在浏览器之间共享cookie的方法(我理解,共享会话完全没有问题)。由于服务器不知道私有IP,我也无法开发出使用它们的方法,我被卡住了,任何帮助都会受到赞赏。

PS:我是一家公司的实习生,我没有被告知这个功能需要的具体情况,但这是需要做的。我建议使用客户端授权(登录ID,密码),但该建议被拒绝了,我被卡住了!

编辑:我只创建一个会话,如果具有相同IP的客户端(存储在数据库中的IP标志)没有浏览页面。否则,如果同一个IP已经在会话中,它们将被抛出...它不是&#39真的是一个练习,他们想要一个有效的解决方案!我通过$ _SERVER [' REMOTE_ADDR']和$ _SERVER [' HTTP_X_FORWARDED_FOR']获取IP - 它阻止了我真正不想要的全球IP。

编辑2:如何使用Java小程序或Flash cookie(以某种方式以迂回的方式)来做到这一点?

2 个答案:

答案 0 :(得分:2)

这是不可能做到的,至少不是以万无一失的方式。不同的浏览器可能使用不同的代理,因此即使您可以使用IP过滤也不够。问为什么需要这样做,然后当你知道实际需要什么时,找一种方法来做。

答案 1 :(得分:1)

考虑到这是一个练习,似乎你确实被要求做不可能的事。但是,假设他们想要在大多数情况下都能使用的通用解决方案,请查看$_SERVER['REMOTE_ADDR'] - 这将返回客户端的IP 他的代理服务器,如果是在代理服务器上,您还可以使用$_SERVER['HTTP_X_FORWARDED_FOR']来获取客户端IP。

提醒$_SERVER['HTTP_X_FORWARDED_FOR'] - 可以欺骗,因此不受信任,但99%的用户不知道代理是什么或者如何伪造这个设置。

这不是一个100%万无一失的解决方案,但为此你真的想要一个登录机制,没有其他解决方案可以想到。