Izinkan hanya satu Agen-Pengguna, blokir sisanya di nginx?

baru mengenal situs ini jadi saya akan singkat saja:

Saat ini saya punya:

    if ($http_user_agent ~* (A-certain-self-made-User-Agent-here)) {
            return 200;
    }

Yang bekerja dengan sangat baik. (Diuji dengan mengganti 200 ke 403).

Pertanyaan saya adalah: Apakah ada cara di: /etc/nginx/sites-enabled/default untuk membuatnya hanya mengizinkan SATU Agen-Pengguna dan menolak sisanya?

Saya tahu ini kelihatannya bodoh, tetapi ini adalah sesuatu yang ingin saya lakukan (jika memungkinkan). Mungkin seperti ini?:

    if (http_user_agent ~*(user-agent)) {
           return 200;
    else
           return 403;
    }

person Neil Mcdonald    schedule 16.07.2013    source sumber


Jawaban (3)


Coba ini:

if ($http_user_agent !~* (A-certain-self-made-User-Agent-here)) {
        return 403;
}

Ini harusnya 'tidak cocok' pada agen pengguna tertentu Anda. Info referensi di sini: HttpRewriteModule

person ProfessionalAmateur    schedule 17.07.2013

if ($http_user_agent !~* "A-certain-self-made-User-Agent-here") {
    return 403;
}

sedang bekerja di situs saya.

person Vidyut    schedule 19.07.2013

Anda dapat mencoba yang berikut ini di lokasi yang tepat

set $isallowed = "";
if ($http_user_agent = allowed_user_agent) {
    set $isallowed "${isallowed}YES";
}

if ($isallowed !~ YES) {
    rewrite ^ http://yourserver.com permanent;
}
person deagh    schedule 17.07.2013