小编scr*_*ler的帖子

通过 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
查看次数