繁体   English   中英

通过php脚本进行.htaccess身份验证,以防止浏览器对话框

[英].htaccess authentication from a php script to prevent a browser dialog box

使用php我对用户进行身份验证,然后在后台进行身份验证,然后再次使用单个.htaccess用户名和密码进行第二次身份验证。 对于所有用户来说都是一样的,但是我不希望他们再次输入用户名和密码,现在允许他们输入受密码保护的目录。 我不想使用http:// username @ password:somedomain.com

有什么想法吗?

如果要避免多次登录但需要HTTP身份验证,则只能将 HTTP身份验证用于实际登录。 这是因为PHP可以发出并响应此类标头。

http://php.net/manual/en/features.http-auth.php

这样,用户会收到一个弹出窗口,PHP可以读取它并做出相应的响应,浏览器将通过随后的请求将其传递,从而消除了进一步的提示。

注意:此解决方案不适用于PHP的CGI版本。

您不应该这样做。

或者:

  1. 将代码添加到受.htaccess保护的目录中,以使用您的PHP身份验证方案并删除.htaccess身份验证。

  2. 编写一个新的PHP页面/脚本,通过身份验证的用户将通过该页面/脚本访问所有受保护的内容。 将受保护的内容移出Web根目录,或使用.htaccess文件拒绝所有访问。 您的脚本将能够访问文件,但是用户将必须通过脚本来访问它们。

抱歉,我不认为这是可能的(除非您想使用username:pass @ url方案)。 您可以编写一些ajax在后台进行操作,这意味着浏览器会记住该区域的身份验证(也许,我从未真正尝试过)。 但是无论如何,您仍然需要用户名/密码。

为了确保在浏览器中不以明文形式传输密码(我假设您正在使用https通过网络传输密码,或者如果不是,则应该这样做!)的安全性,我认为这会使用户有些烦恼,但是我认为这不是很大的麻烦。

当然,您可以在PHP的该其他文件夹上进行身份验证,这将解决此问题,或者通过一个HTTP身份验证将所有受保护的代码放在一个位置,但是我假设您不希望这样做(或不能这样做)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM