Bloccare l'accesso a determinati browser con nginx

Bloccare l'accesso a determinati browser con nginx

Bloccare l'accesso a un sito web da determinati browser può essere necessario per vari motivi, come la sicurezza, la compatibilità o per limitare l'accesso a contenuti specifici. In questo articolo, vedremo come utilizzare nginx per bloccare l'accesso a un sito web basandosi sul browser utilizzato dall'utente.

I browser web si identificano con una stringa chiamata "User-Agent". Questa stringa contiene informazioni sul browser, il sistema operativo e altre specifiche del client. Per bloccare un browser, dobbiamo identificare l'User-Agent corrispondente.

Ecco alcuni esempi di User-Agent:

  • Google Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
  • Mozilla Firefox: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0
  • Microsoft Edge: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.864.64 Safari/537.36 Edg/91.0.864.64

Apri il file di configurazione del tuo sito in nginx. Questo file si trova generalmente in /etc/nginx/sites-available/ o /etc/nginx/conf.d/.

Aggiungi la seguente configurazione per bloccare un determinato User-Agent:


server {
    listen 80;
    server_name tuo_dominio.com;

    location / {
        if ($http_user_agent ~* "Chrome|Firefox|Edge") {
            return 403;
        }

        # Altre configurazioni del sito
    }
}

In questo esempio, stiamo bloccando l'accesso ai browser Chrome, Firefox e Edge. La direttiva if ($http_user_agent ~* "Chrome|Firefox|Edge") verifica se l'User-Agent corrisponde a uno dei browser specificati. Se la condizione è vera, nginx restituisce un codice di stato HTTP 403 (Forbidden).

Se desideri bloccare solo un browser specifico, modifica la direttiva if per includere solo l'User-Agent del browser che vuoi bloccare. Ad esempio, per bloccare solo Google Chrome, usa:


if ($http_user_agent ~* "Chrome") {
    return 403;
}

Conclusione

Bloccare l'accesso a determinati browser con nginx è un processo relativamente semplice che richiede la modifica della configurazione del server. Utilizzando la stringa User-Agent, possiamo identificare e bloccare specifici browser per garantire che solo i client desiderati possano accedere al nostro sito. Ricorda sempre di testare le modifiche in un ambiente di sviluppo prima di applicarle in produzione per evitare interruzioni del servizio.

Torna su