标签: .htpasswd

从htpasswd中排除文件夹

我需要使用用户名/密码密码保护网站,但需要保持"/ assets"文件夹可访问,因为images/css等文件正在其他网站上嵌入.

我有这个保护:

Order Allow,Deny
AuthType Basic
AuthName "Password"
AuthUserFile /var/www/.htpasswd
Require valid-user
Satisfy Any
Run Code Online (Sandbox Code Playgroud)

如何指定保护/ assets文件夹中的所有内容?

apache .htaccess .htpasswd

13
推荐指数
1
解决办法
1万
查看次数

适当的.htpasswd用法

假设一个小的(页面<5)站点,什么是.htaccess.htpassword?的正确用法?我最近看了Nettuts +的教程,其中给出了这个示例代码:

的.htaccess

AuthName "Login title"
AuthType Basic
AuthUserFile /path/to/.htpasswd
require valid-user
Run Code Online (Sandbox Code Playgroud)

.htpasswd (使用htpasswd -c <file> <username>命令创建)

username:encrypted-version-of-password
Run Code Online (Sandbox Code Playgroud)

我也对这提供的实际安全级别感到好奇:它可以轻易绕过吗?如果默认情况下Apache不允许用户直接访问这两个文件中的任何一个,那么它们是否需要位于公共目录之外?有速度影响吗?

apache .htaccess .htpasswd

13
推荐指数
1
解决办法
2万
查看次数

如何使Basic Auth排除重写的URL

我在开发服务器上有一个基本身份验证设置.它是在我的httpd.conf文件中为网站的VirtualHost设置的.我必须将它设置为排除某些目录,这些目录没有引起任何问题并且一切正常.

问题在于排除已通过文件中的mod_rewrite规则的URL .htaccess.我的设置是我有所有URL通过我的index.php文件,并从那里找到并运行相关的代码.我尝试添加我想要排除的URL(/businesses/upload_logo),就像我做其他人一样,但它仍然需要身份验证.这就是我目前拥有的:

...
<Location />
    SetEnvIf Request_URI "/businesses/upload_logo" noauth=1
    SetEnvIf Request_URI "/api/.*" noauth=1

    AuthType Basic
    AuthName "Private"
    AuthUserFile ****
    Require valid-user

    Order deny,allow
    Satisfy any
    Deny from all
    Allow from env=noauth
</Location>
....
Run Code Online (Sandbox Code Playgroud)

在这里这里找到了与我类似的问题,但答案只给了我正在尝试的东西.

我也想过其他可能的解决方案,但这些都是最后的选择.我想看看我现在的做法是否可行:

  • 在我的PHP代码中设置基本身份验证
    • 此刻太麻烦了
  • 将身份验证放在我的.htaccess文件中
    • 我还不想这样做,因为我只希望在3台服务器之一上进行身份验证.我知道我可以使用更多,SetEnvIf HOST ...但我想看看它是否可以这样修复或不首先修复.

mod_rewrite规则:

...

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)

apache authentication .htaccess mod-rewrite .htpasswd

12
推荐指数
1
解决办法
1万
查看次数

.htaccess虚拟主机的基本身份验证?

我想知道是否可以根据.htaccess文件中的虚拟主机URL设置条件http基本身份验证要求.

例如,我想要做的是让mysite.com和test.mysite.com在同一目录中运行相同的代码库,但密码保护test.mysite.com.它将以这种方式设置,以便我不需要分支我的代码,因为我的应用程序代码可以看到它从哪个vhost/url服务并选择数据库来提供内容.

apache .htaccess basic-authentication .htpasswd

11
推荐指数
3
解决办法
2万
查看次数

特定子域上的.htpasswd

我有一个特定于语言的子域,它指向与我的站点相同的目录.我使用PHP来检测它并显示语言.

我希望只在这个子域上设置一个htpasswd.请记住,没有特定于此子域的物理目录.因此,该语句将与我站点的根目录在同一个htaccess中.

我需要htaccess才能这样做:

if request is mysubdomain.domain.com
AuthUserFile /www/.htpasswd
AuthName "Locked"
AuthType Basic
Run Code Online (Sandbox Code Playgroud)

谢谢

subdomain .htaccess .htpasswd

10
推荐指数
2
解决办法
8378
查看次数

使用apache config和htaccess为dev和production动态设置配置变量

简短的摘要

我需要能够在Apache站点配置中设置一个环境变量,用于定义站点是开发,测试还是生产.

Web根目录中的htaccess文件将根据Apache配置中的条目定义网站的配置变量(数据库凭据,域等)

我还需要在位于另一个目录中的另一个htaccess中使用web根htaccess中定义的变量之一.

站点配置

Apache配置(dev/beta)

我想在他们的Apache站点配置文件中为我的dev和beta环境设置一个环境变量

像这样的东西:

(我确定它不是正确的语法)

SetEnv environment_type dev
Run Code Online (Sandbox Code Playgroud)

- 要么 -

SetEnv environment_type beta
Run Code Online (Sandbox Code Playgroud)


Apache Config (生产)

生产站点apache config可能根本不设置它,或者它可以:

SetEnv environment_type prod
Run Code Online (Sandbox Code Playgroud)

但这是可选的


.htaccess (设置站点配置变量)

然后,在公共webroot的.htaccess文件中设置用于数据库连接,域名等的配置变量,如下所示:

(再次,只是模拟语法)

<If (environment_type exists) && (environment_type == dev)>
    SetEnv base_dir /www/example.com/dev/
    SetEnv db_host localhost
    SetEnv db_name devdb
    SetEnv db_user devuser
    SetEnv db_password devpass
    SetEnv web_domain www.devdomain.com
    SetEnv cookie_domain .devdomain.com
<elseif (environment_type exists) && (environment_type == beta)>
    SetEnv base_dir /www/example.com/beta/
    SetEnv db_host localhost
    SetEnv db_name betadb
    SetEnv db_user betauser
    SetEnv …
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess apache2 .htpasswd

10
推荐指数
1
解决办法
5144
查看次数

Apache htpasswd安全密码更改

我的问题很简单.

如何允许用户更改存储在linux中的某些htpasswd文件中的密码而不泄露文件内容或允许用户修改其他密码?

我尝试使用ssh和specialy设计的用户编写一个脚本来完成这项工作,但现在它会引导.

请帮忙.我正在使用Debian服务器"Lenny".

apache bash .htpasswd

8
推荐指数
1
解决办法
2万
查看次数

403禁止 - Nginx - 使用正确的凭据

我正在尝试密码保护我的Nginx支持的网站上的目录,其中包含phpMyAdmin,MemcacheMyAdmin和更多管理实用程序.

此目录位于我的站点的根目录中:

domain.com/control/
Run Code Online (Sandbox Code Playgroud)

我服务器上的绝对路径是:

/home/deployer/sites/domain.com/control/
Run Code Online (Sandbox Code Playgroud)

我使用以下命令在目录中创建了一个.htpasswd文件:

htpasswd -c /home/deployer/sites/domain.com/control/.htpasswd admin
Run Code Online (Sandbox Code Playgroud)

该文件存在,由"root"用户拥有,并且是0644权限.

在Nginx中此域的.conf文件中,我使用以下位置块来要求身份验证.

  location /control {
    auth_basic            "Restricted Area: Control";
    auth_basic_user_file  /home/deployer/sites/domain.com/control/.htpasswd;
  }
Run Code Online (Sandbox Code Playgroud)

当进入受密码保护的目录时,系统会提示我输入用户名和密码.我输入我之前创建的凭据,然后我会看到错误403禁止页面.

访问日志显示我正在访问登录提示,然后以"admin"用户身份登录:

64.123.456.225 - - [12/May/2013:17:30:48 +0000] "GET /control HTTP/1.1" 401 597 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
64.123.456.225 - admin [12/May/2013:17:30:48 +0000] "GET /control HTTP/1.1" 301 185 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
64.123.456.225 - admin [12/May/2013:17:30:59 +0000] "GET /control/memcache/ HTTP/1.1" 403 199 "-" "Mozilla/5.0 …
Run Code Online (Sandbox Code Playgroud)

nginx http-status-code-403 .htpasswd

8
推荐指数
2
解决办法
1万
查看次数

在.htpasswd上添加评论

我想知道是否可以在.htpasswd文件上写评论.

为什么?因为有时候,我们必须"禁用"一些用户,只需几天.我查看了StackOverflow和其他网站,看起来很混乱:

  • 不可能
  • 可能的 ::
  • 可能与#(如.htaccess)

::bar:$apr1$G3iw8iqc$IGNoXDw7e7HolcSgE/V0a0

#foo:$apr1$3dJLDmbn$/zODUbSXmqDfeeCmMFKO8/

注意:例如,我不想通过在行的开头添加假char来禁用用户.如果可能的话,我想要一个干净的方式;)

测试后,双方似乎工作,但我想要一些专家意见(顺便说一句,并没有VIM做语法高亮既不::也不#)

syntax .htpasswd

8
推荐指数
1
解决办法
5137
查看次数

Edge chromium 不会显示基本身份验证弹出窗口?

我有一个 Apache 服务器 v2.4.43 为我的网站提供服务,并且我使用一个简单的 .htpasswd,我使用指令“AuthUserFile <path to my .htpasswd file>”在 .htaccess 中调用它来进行身份验证。

现在,该解决方案适用于所有浏览器(将显示一个弹出窗口,要求输入用户名/密码),但 Edge 浏览器(基于 Chromium 版本 84.0.522.52)除外。在显示要求您提供凭据的弹出窗口之前,它会引发以下错误:

Unauthorized

This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.

Apache/2.4.43 (Unix) Server at mywebsite.com Port 443
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激。

apache .htaccess .htpasswd microsoft-edge

8
推荐指数
1
解决办法
2万
查看次数