标签: http-basic-authentication

通过 IP 保护位置,同时在其他地方应用基本身份验证

我想达到以下结果:

  • 将基本身份验证应用于任何位置、文件、路径
  • 删除 IP/CIDR 范围白名单的基本身份验证
  • 阻止所有人访问特定目录及其下的所有内容,除了一个 IP 地址(包括以上内容)

这是我正在使用的 nginx 配置:

server {
    listen 80 default;

    # Basic auth
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;

    satisfy any;
    # IP whitelist
    include /etc/nginx/conf.d/ip-whitelist.conf.include;
    deny all;

    # Lock down the "hello" directory to specific IP addresses
    location /hello/ {
        # Developers only - ever!
        allow 12.34.56.78;
        deny all;
    }
    # ...
}
Run Code Online (Sandbox Code Playgroud)

目前发生的事情是上面项目符号列表中的第 1 点和第 2 点正在工作 - 即白名单中的任何 IP 都没有跨站点的基本身份验证,但如果 IP 未列入白名单,则会提示他们进行基本身份验证。

然而,“hello”的位置块似乎不起作用,并且仍然允许“hello”目录下的任何内容具有与上述相同的条件,例如,如果我尝试/hello/world.php从列入白名单的 IP访问,它会被提供。如果我从非白名单 IP 访问它,我将获得基本身份验证。

我想阻止 IP 以外的所有人访问“hello”目录12.34.56.78(示例)。 …

nginx whitelist http-basic-authentication

4
推荐指数
1
解决办法
7640
查看次数

Nginx 位置块不适用于其中的 .php 文件?

因此,为了帮助防止对我的 phpmyadmin 安装的暴力攻击,我将 nginx 配置为需要 HTTP 基本身份验证(额外的用户名和密码),然后请求需要来自列入白名单的 IP 地址。但是,如果我运行https://example.com/phpmyadmin/,IP地址白名单工作正常,但是如果不添加额外的 .php 块,我可以加载https://example.com/phpmyadmin/index.php而不将我的 IP 列入白名单。此问题不会影响 HTTP 基本身份验证。发生这种情况有原因吗?无论如何要避免添加额外的 .php 块?phpmyadmin 配置区域的副本如下。

# Setup and secure phpMyAdmin
location /phpmyadmin/ {
  allow 1.2.3.4;
  deny all;
  auth_basic "phpMyAdmin - HTTP Basic Login";
      auth_basic_user_file /etc/nginx/pma_pass;
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    allow 1.2.3.4;
    deny all;
    }
}
Run Code Online (Sandbox Code Playgroud)

nginx whitelist http-basic-authentication phpmyadmin

4
推荐指数
1
解决办法
2405
查看次数

具有基本身份验证的 Apache2:从身份验证中排除一个位置(奇怪的行为)

我为目录 / 设置了基本身份验证,并想排除位置 /assets/upload,但它不起作用,我尝试了几个选项和教程。

此 Location 指令清除目录身份验证配置并禁用整个网站的基本身份验证

<Directory "/">
    AuthType Basic
    AuthName "Staging"
    AuthUserFile /var/.../.htpasswd
    AuthGroupFile /dev/null
    Require valid-user
</Directory>

<Location "/">
    Order deny,allow
    Allow from all
    Satisfy any
</Location>
Run Code Online (Sandbox Code Playgroud)

但是,我只希望 /assets/upload 没有基本身份验证,但是如果我将 Location 的第一个参数更改为 /assets/upload,则整个页面,包括 /assets/upload 都受基本身份验证...

<Location "/assets/upload">
    Order deny,allow
    Allow from all
    Satisfy any
</Location>
Run Code Online (Sandbox Code Playgroud)

这里可能有什么问题?

版本:Apache/2.2.16 (Debian)

authentication http-basic-authentication apache-2.2

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

限制 Apache 中的基本身份验证尝试次数

我正在使用 HTTPS + 基本身份验证来保护资源。如何限制身份验证尝试以防止暴力攻击?

http-basic-authentication apache-2.2

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

仅针对给定位置的 Nginx 身份验证

我使用 Nginx 作为 python WSGI web-app 的反向代理。

它看起来像这样:

location / {
    #auth_basic     "Administrator Login";
    #auth_basic_user_file  /var/www/static/.htpasswd;
    proxy_pass          http://mywebapp_gunicorn;
    proxy_redirect      off;
    proxy_set_header    Host            $host;
    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
}
Run Code Online (Sandbox Code Playgroud)

在 Web 应用程序内部,我有一些管理员页面,我希望受到很好的保护,所以现在我在 Web 应用程序内部使用了一些身份验证来保护它们,我也想添加 Nginx 身份验证。

如何激活:

    auth_basic      "Administrator Login";
    auth_basic_user_file  /var/www/static/.htpasswd;
Run Code Online (Sandbox Code Playgroud)

对于 path: /managers,但不适用于所有其他 URL。

nginx authentication http-authentication http-basic-authentication

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

使用 .htacces/.htpasswd 的 http 基本身份验证允许稍微不正确的密码

我有一些站点的目录受 http 基本身份验证保护,这些目录是通过 .htaccess 文件与 .htpasswd 文件配对实现的。我注意到密码以“et!”结尾 我可以通过省略“t!”或替换!与 1。

我的 .htaccess 文件的内容:

AuthType Basic
AuthName "administration"
AuthUserFile /var/www/conf/mysitename.com.pw

require valid-user
Run Code Online (Sandbox Code Playgroud)

我在 mysitename.com.pw 中有两个用户。

显然,这种行为是不想要的。知道发生了什么吗?

http password http-basic-authentication

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

基本身份验证是否允许多个用户使用相同的用户名和密码登录?

使用 IIS 6 或 7,基本身份验证是否允许两个人使用相同的用户名/密码组合同时访问站点?

iis http-basic-authentication

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

如何访问由表达式中的重写规则设置的环境变量?

我正在开发具有公共和私有部分的 Symfony 3.4 应用程序。但是,我目前正在为此应用程序设置一个只能由授权用户访问的临时系统,因此我在整个应用程序前面放置了一个 .htaccess 基本身份验证。

应用程序中有一条路由需要由不提供身份验证的外部应用程序访问。我只想为这条单一路由禁用 .htaccess 身份验证。此路由的所有 URL 都采用/api/post-result/123where123是任意 ID的形式。

在四处搜索之后,我试图通过Require expr我的 .htaccess 中的一个条目来解决这个问题,该条目将简单地匹配 URL。但是,由于 Symfony 进行 URL 重写,REQUEST_URI在服务器(以及我的情况)中始终显示为“app.php”。我尝试了其他变量,例如QUERY_STRINGor PATH_INFO,但它们似乎都没有包含我的实际请求 URI。然后我尝试使用重写规则将匹配的 URI 放入环境变量中。但是,这似乎无法通过表达式读取。

这是我的 .htaccess 文件

DirectoryIndex app.php

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule ^(.*)$ %{ENV:BASE}/app.php [L,E=SFURI:$1] # <-- env variable is set here
</IfModule>

<IfModule !mod_rewrite.c> …
Run Code Online (Sandbox Code Playgroud)

rewrite .htaccess http-basic-authentication apache-2.4

0
推荐指数
1
解决办法
4303
查看次数