【问题标题】:how to limit webpage access to 1 user per ip?如何将网站访问限制为每个 ip 1 个用户?
【发布时间】:2013-08-23 07:01:03
【问题描述】:

是一种阻止多次登录到一个网站到一个连接/IP 的方法吗?

假设我的网站是 http://website.com,我只希望 1 个用户从 1 个 IP 浏览!

这可以使用 php、javascript 或 htaccess 吗?

我对 htaccess 做了很多测试,但都失败了

提前致谢

【问题讨论】:

  • 是的,但是共享一个共同 IP 的大学和地方呢?
  • 之前您问过一个问题,即如何确定网站是否通过本身是 Web 服务器的 IP 访问,以及这是否可以在 JavaScript 中完成。我为你写了一个答案(答案是你需要用 PHP 来做,但你可以将那个布尔值传递给 JavaScript)但遗憾的是,我发现你的问题被删除了。请注意,删除问题会浪费人们的时间。它似乎并没有离题,但它获得了一张反对票,您不必担心。

标签: php javascript .htaccess mod-security


【解决方案1】:

是的,但你不应该!

假设您只想阻止一个 IP 地址上的多个用户登录典型的身份验证系统,只需在您的 users 数据库表中添加两行:last_iplast_seen

last_ip 如果用户的 IP 地址已更改,则会在每次页面加载时更新。 last_seen 在每次页面加载时更新。

当用户提交登录请求时,检查另一个用户的 last_ip 是否等于用户的 IP 地址以及 last_seen 是否在合理的时间段内(比如 30 分钟)。如果是,拒绝登录请求。

这是个坏主意,因为它很容易避免

使用 VPN、TOR 或开放代理,用户可以很容易地在不同浏览器甚至同一浏览器的不同标签中操作多个 IP 地址。

另外,期待 IPv6,每个用户可能有 64-256 个标准 IP 地址。

这也是一个坏主意,因为它会损害合法用户

贫穷国家的用户、住在同一个家中的多人、大学或工作场所的人很可能共享 IP。用户无法很好地映射到 IP 地址。

【讨论】:

  • 是的,我想知道 OP 无论如何都需要这样做。
  • @Mark 可能他正在做一些事情,比如投票系统、游戏或竞赛,他想阻止一个用户多次输入。
  • 感谢您的快速回复,我说的是一个没有任何数据库的简单 php 页面,我需要它来阻止来自同一个家庭的人 :) 这是一个有规则的链接下载站点每 5 分钟 1 个链接,所以我需要一些东西来注册 1 个名称使用的 ip 地址并阻止他们以某种方式使用另一个,我知道我要问的是奇怪的,应该由我拥有的链接 bot php 脚本修复不知道如何添加单个 ip 功能:) 再次感谢
  • @GuestofHonor 相同的答案,但使用json / XML 配置文件或SQLite 无守护程序数据库。其他任何东西都是客户端,很容易绕过。
  • @GuestofHonor 您可能想要做其他事情,例如创建 cookie 或使用 JavaScript 本地存储(在服务器端解决方案之上),这将有助于防止代理滥用,但坚定的用户总会绕过这些限制(来源:我花了很长时间试图在我制作的游戏中为每个用户强制执行一个帐户)
【解决方案2】:

是的,这是可能的,但有点奇怪:) 每当会话关闭/过期时,您都可以将会话(也保存 IP 地址)保存到数据库 - 将其删除。

如果您使用 Codeigniter,请阅读 this
否则,here's 是一个不错的“演练”。

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多