使用 index.php 和不使用它的 url 绕过 htpasswd 身份验证
Posted
技术标签:
【中文标题】使用 index.php 和不使用它的 url 绕过 htpasswd 身份验证【英文标题】:Bypass htpasswd authentication for url with index.php and without it 【发布时间】:2015-05-30 12:05:07 【问题描述】:我已经添加了使用 htaccess 文件进行身份验证的 htpasswd 保护,现在我想绕过 www.website.com
和 www.website.com/index.php
的身份验证,其中两个 url 都在访问 index.php 文件。通过使用下面的 htaccess 文件,我允许 index.php 并且我能够绕过 www.website.com/index.php
url 但不能绕过 www.website.com
我的 htaccess 文件是:
# set an environtment variable "noauth" if the request starts with "/callbacks/"
SetEnvIf Request_URI ^/index.php noauth=1
AuthType Basic
AuthName "RESTRICTED"
#AuthName "Restricted Area"
AuthUserFile "/path/to/.htpasswd"
require valid-user
Options -Indexes
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^([^.]+)$ /file.php?show=all&name=$1 [L]
# Here is where we allow/deny
Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=noauth
【问题讨论】:
【参考方案1】:我相信第二个参数只是使用常规正则表达式。也许你可以让 index.php 成为可选的。
SetEnvIf Request_URI "^/(index\.php)?$" noauth=1
没有测试。
【讨论】:
是的,它起作用了,但是这个和我之前的代码有一些不同的地方。当我打开 www.website.com 或 www.website.com/index.php 时,它会继续询问用户名和密码,尽管昨天使用 index.php 的 url 工作正常,当我单击取消而不是显示需要授权时(401) 它显示来自 index.php 的内容,在 firebug 控制台内的 style/images/js 文件夹出现 401 错误。这意味着它允许显示来自 index.php 页面的内容,但为什么它要求在此页面上输入用户名和密码。 ^^^ 可能是因为它拒绝从 style/css/images/js 文件夹访问,但是如何克服这种情况。如何达到我的要求。 是的,这就是我正在寻找的内容,并且由于其他文件夹被禁止,它会显示身份验证弹出窗口。我只是允许这些文件夹以及它现在工作。以上是关于使用 index.php 和不使用它的 url 绕过 htpasswd 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
从 zend 框架上 apache 2.4.6 的 url 中删除 index.php
HTACCESS 重写:忽略语言代码并将 index.php 添加到 url 而不更改它