bookmark_borderImpostare http_proxy in caso di password con caratteri speciali

Può capitare di essere connessi ad internet tramite un server proxy e la password del prioprio account contenga, per ragioni di sicurezza, dei caratteri speciali, come ad esempio !, @ ecc.

Se il proprio sistema operativo è una distribuzione Linux, come Ubuntu, per connettersi tramite il proxy può essere necessario impostare le variabili http_proxy e https_proxy, ma il comando per farlo non funziona nel caso di password contenente caratteri riservati, come ad esempio F@oo!B#ar$:

export http_proxy = "http://utente:F@oo!B#ar$@myProxy.myServer.com:3128"

È possibile che venga visualizzato un errore o che il comando non abbia alcun effetto proprio a causa dei caratteri speciali contenuti nella password.

La soluzione è utilizzare l’encoding URL, previsto per i caratteri riservati. Utilizzando strumenti da riga di comando, come unum o gnome-character-map, si può ricavare il codice esadecimale di un carettare speciale:

Partendo dall’hex di un carattere è possibile quindi determinare l’encoding URL corrispondente. Quindi @ diventa %40, : diventa %3A, ! diventa %21, ecc., cosicché la password presa come esempio diventa F%40o%3Ao%21B%23ar%24.

Ora è possibile utilizzare questi codici al posto dei caratteri speciali e settare il proxy senza problemi:

export http_proxy="http://user:F%40o%3Ao%21B%23ar%24@myProxy.myServer.com:3128"

Se PHP è installato sul proprio sistema operativo, per convertire rapidamente caratteri speciali o intere password si può usare il seguente comando:

echo 'F@oo!B#ar$' | php -R 'echo urlencode($argn)."\n";'

Oppure installando gridsite-clients si può scrivere semplicemente urlencode 'F@oo!B#ar$'ed ottenere la password convertita.

Articolo originale: link.