Open redirect (o reindirizzamenti e inoltri non convalidati) è una vulnerabilità di reindirizzamento a un URL. Un hacker può sfruttarla per reindirizzare utenti da un sito web affidabile a uno potenzialmente dannoso di terze parti, quindi rubare le loro credenziali tramite un attacco di phishing. Per proteggersi da questa vulnerabilità, è opportuno configurare Plesk in modo da limitare il reindirizzamento a URL.

La vulnerabilità è consentita dal parametro failure_redirect_url, utilizzato durante la configurazione dell’ accesso automatico a Plesk. Questo parametro contiene uno o più nomi host ai quali un utente viene reindirizzato dopo un tentativo di accesso o disconnessione non riuscito.

La vulnerabilità riguarda tutti i server Plesk, indipendentemente dal fatto che l’accesso automatico a Plesk sia stato impostato o meno. Per proteggersi, è necessario aggiungere una voce al file panel.ini. La voce esatta varia a seconda che sia stato impostato o meno l’accesso automatico a Plesk.

Per proteggere Plesk da open redirect, se non è stato impostato l’accesso automatico a Plesk:

Aggiungi le seguenti righe al file panel.ini :

[security]
trustedRedirectHosts =

La riga trustedRedirectHosts è vuota e non sono specificati host. In questo modo si impedisce a Plesk di eseguire il reindirizzamento a qualsiasi host utilizzi il parametro failure_redirect_url.

Per proteggere Plesk da open redirect, se è stato impostato l’accesso automatico a Plesk:

Aggiungi una voce al file panel.ini secondo questo schema:

[security]
trustedRedirectHosts = hostname

Dove nome host è un host affidabile al quale è consentito il reindirizzamento URL tramite il parametro failure_redirect_url.

L’impostazione trustedRedirectHosts accetta uno o più nomi host separati da virgole e specificati nel formato seguente:

  • Un nome di dominio, ad esempio esempio.com
  • Un indirizzo IP, ad esempio 10.58.58.100
  • Sottodomini wildcard, ad esempio *.esempio.com

Nota: quando si specificano nomi host in trustedRedirectHosts e failure_redirect_url, è necessario utilizzare solo il carattere dell’asterisco (*) seguendo lo scherma mostrato sopra (*.esempio.com). In caso contrario, il server potrebbe rimanere vulnerabile. Ad esempio, i nomi host esempio.* o 203.0.113.* non sono sicuri, in quanto possono corrispondere rispettivamente a esempio.sitowebdannoso.com e 203.0.113.sitowebdannoso.com.

Ecco un esempio utile dell’impostazione trustedRedirectHosts nel file panel.ini:

[security]
trustedRedirectHosts = example.com,10.58.58.100,*.example.com

Dove esempio.com, 10.58.58.100, *.esempio.com sono nomi host utilizzati nel parametro failure_redirect_url.

Nota: quando si specificano vari nomi host in trustedRedirectHosts, non aggiungere il carattere spazio ( ) prima o dopo la virgola (,) che separa tali nomi host. In caso contrario, il nome host non viene gestito correttamente e il reindirizzamento URL non riesce.