【问题标题】:allow one ip to access with basic authentication允许一个 ip 通过基本身份验证访问
【发布时间】:2013-03-27 22:58:38
【问题描述】:

我已经为普通用户设置了基本的用户名和密码验证

我只想要一个使用一个用户名和密码的 ip 访问

例如 用户一与testtest 连接 如果用户 1 仍然通过基本身份验证连接到服务器,并且用户 2 请求使用相同的用户名和密码访问服务器,则用户 2 无法访问服务器,直到用户 1 与服务器断开连接。

【问题讨论】:

  • 您认为用户的会话何时结束?
  • 我不明白你的意思,当 y 用户断开与服务器的连接时(例如完成下载文件时)
  • 看看this question,也许它会给你一些提示。毕竟你会看到实现它的唯一方法是用锁定机制替换.htaccess

标签: php apache .htaccess basic-authentication


【解决方案1】:

这对于 HTTP 基本身份验证是不可能的,因为 HTTP 没有持续时间超过单个页面或图像的所有数据传输时间的活动连接。如果传输了所有数据,则终止连接。这应该是让第二个用户进入的正确时间吗?如果是这样,限制你的 apache 一次只接受一个连接(即只允许一个子进程),你就完成了。

如果你想要这个更像我认为你想要的,你必须自己在你的应用程序中使用会话来实现它,并且必须处理这样一个事实,即用户通常不会将自己从应用程序中注销,而只是简单地关闭浏览器。因此,经过一定时间后,必须将第一个用户视为非活动用户并终止其会话以让第二个用户进入。

顺便说一句:请记住,HTTP 基本身份验证无法实现“注销”!所有模拟这种情况的解决方案实际上只会向浏览器发送另一个身份验证挑战,这使得它忘记了登录并再次要求用户提供凭据。这不能用 .htaccess 实现。

【讨论】:

  • 如果我限制我的 apache ,只有一个用户可以同时访问,我希望每个用户都可以访问并将他们的会话锁定到他们的 ip ,所以另一个用户不能用同一个用户访问并通过和不同ip,比如用户1下载b个大文件,1个连接,用户2相同用户密码,下载完成后才能访问服务器。知道怎么做吗?
  • 是的,使用 .htaccess 是不可能的 - 在您的软件中实现它。
  • 你说,我将所有连接重定向到php页面,并检查用户,如果用户可以访问,发送文件以供下载?有可能吗?
  • 没有。通常你会检查每一页的访问权限,否则就可以绕过它。请 google 获取有关如何设置使用 PHP 会话进行网站登录的机制的教程 - 解释这些基础知识超出了 cmets 的范围,无法回答 stackoverflow 问题。
  • 我如何检查文件?例如我在这个文件夹中有 1.zip,我如何检查是否允许用户下载 1.zip?
猜你喜欢
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
  • 2013-07-08
  • 2021-05-27
  • 1970-01-01
  • 2011-04-08
  • 2017-09-18
  • 2010-11-10
相关资源
最近更新 更多