NGINX 基本驗證繞過 IP 位址或使用者代理

NGINX 基本驗證繞過 IP 位址或使用者代理

如何在 NGINX 中透過 IP 位址或使用者代理程式在基本驗證中設定旁路。如果我這樣設定:

map $http_user_agent $auth {
    default on;
    "~curl" "off";
}

server  {
.......
satisfy any;
allow 1.2.3.4;
allow 5.6.7.8;
deny all;
auth_basic $auth;
auth_basic_user_file /etc/nginx/.htpasswd;
.....
}

然後,當我使用用戶代理curl從白名單以外的地址輸入時,我得到403。

答案1

禁用auth_basic可能會將其從現實中刪除,satisfy而不是使其成為現實。

您可以透過新增另一個授權方案來實現您正在嘗試的目標,授權請求

例如:

map $http_user_agent $auth {
    "~curl"  1;
}

server {
    ...

    satisfy any;

    allow 1.2.3.4;
    allow 5.6.7.8;
    deny all;

    auth_basic "Password protected";
    auth_basic_user_file /etc/nginx/.htpasswd;

    auth_request /auth;
    location = /auth {
        internal;
        if ($auth) { return 200; }
        return 401;
    }

    ...
}

相關內容