将 AuthUserFile 替换为 .htaccess 中的自定义 PHP 脚本

发布于 2024-12-12 17:52:43 字数 443 浏览 0 评论 0原文

每当我需要对整个目录进行快速而肮脏的密码保护时,我都会通过 .htaccess 文件使用 HTTP 身份验证(大多数时候,是为了隐藏我安装的第三方应用程序)私人使用)。现在我已经编写了一些 PHP 代码来用 OpenID 替换本地密码。这使我能够摆脱 PHP 站点中的 HTTP 身份验证。但是,我仍在尝试找出可以在非 PHP 内容(从第三方程序到随机内容)中使用的技巧。

默认情况下,Apache 似乎不支持使用自定义脚本进行身份验证(无论我做什么,它都应该在我的托管提供商中工作)。这就留下了明显的解决方案,即使用 mod_rewrite 通过检查凭据并读取目标文件的 PHP 脚本来路由所有内容,但是 1) 它看起来像是性能杀手 2) 它会干扰动态内容,例如其他 PHP 脚本。

我想知道是否有一种方法可以调整路由器方法,以便脚本不需要发送文件,或者我是否忽略了其他一些方法。有什么想法吗?

I've been using HTTP authentication through .htaccess files every time I've needed quick and dirty password protection for a complete directory (most of the times, in order to hide third-party apps I install for private use). Now I've written some PHP code to replace local passwords with OpenID. That allows me to get rid of HTTP auth in my PHP sites. However, I'm still trying to figure out a trick I can use in non-PHP stuff (from third-party programs to random stuff).

Apache does not seem to support authentication with custom scripts by default (whatever I do, it should work in my hosting provider). That leaves the obvious solution of using mod_rewrite to route everything though a PHP script that checks credentials and reads the target file but 1) it looks like a performance killer 2) it will interfere with dynamic stuff, such as other PHP scripts.

I'm wondering whether there's a way to tune up the router approach so the script does not need to send the file, or if I'm overlooking some other approach. Any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愁以何悠 2024-12-19 17:52:44

您可以使用 PHP HTTP-AUTH http://php.net/manual/en/ features.http-auth.php

如果 OpenID 就是您所需要的,请考虑对 apache 使用 mod_auth_openid

You may use PHP HTTP-AUTH http://php.net/manual/en/features.http-auth.php

If OpenID is all what you need consider usage of mod_auth_openid for apache

陌上青苔 2024-12-19 17:52:43

我认为你的 mod_rewrite 方法将是执行此操作的唯一方法 - 但不是使用 readfile() (正如我猜测的那样,根据你所说的 它会干扰动态内容,例如其他 PHP 脚本)您只需 include() 它们,以便原始文件直接写入输出并执行 PHP 代码。

I think your mod_rewrite approach would be the only way to do this - but instead of using readfile() (as I guess you are, based on what you say about it will interfere with dynamic stuff, such as other PHP scripts) you can just include() them, so that raw files are written straight to output and PHP code is executed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文