htaccess + htpasswd:如何防止在未指定密码的情况下执行 php 脚本

htaccess + htpasswd:如何防止在未指定密码的情况下执行 php 脚本

我的网站由 Linux 上的 Apache 管理。在基础目录中,有一个子文件夹 fill。在这个子文件夹中,有一个 php 脚本:do.php

这是我的.htaccess:

AuthType Basic
AuthName 'Welcome back'
AuthUserFile /home/provider/mysite/fill/.htpasswd
Require valid-user

这是我的.htpasswd:

ab12:2yd32253zi7Nz2

当我去http://我的网站/填充,系统要求我输入用户名和密码。当我指定它们(带密码的 ab12)时,我成功登录并看到位于此填充文件夹中的 index.html 的内容(即http://mysite/fill/index.html)。然后,我清除浏览历史记录和之前保存的所有密码。之后,当我运行脚本时http://mysite/fill/do.php,我没有被要求进行任何身份验证。

问题:运行时是否可以要求输入凭据http://mysite/fill/do.php? htaccess 有任何变化吗?

谢谢。

答案1

看着Apache 文档身份验证、授权和访问控制,不幸的是无法退出。

所以问题不在于http://mysite/fill/do.php不要求提供凭证。此处的实际问题是您无法重置身份验证。

我如何退出?

自从浏览器开始实现基本身份验证以来,网站管理员一直想知道如何让用户注销。由于浏览器使用身份验证域缓存用户名和密码(如本教程前面所述),因此这不是服务器配置的功能,而是让浏览器忘记凭据信息的问题,以便下次请求资源时必须再次提供用户名和密码。在许多情况下,这是可取的,例如在公共场所使用浏览器时,不希望让浏览器保持登录状态,以便下一个人可以进入您的银行帐户。

然而,尽管这也许是有关基本身份验证最常见的问题,但迄今为止,没有一家主流浏览器制造商认为这是值得在其产品中加入的功能。

因此,这个问题的答案是,你不能。抱歉。

看着这个问题,您也许可以研究其他退出方式。

相关内容