Un URL proxy funziona quando viene configurato direttamente, ma l'autenticazione non riesce dopo che lo stesso valore è stato spostato in un file batch di Windows. Verificare se il parser batch ha modificato i segni di percentuale prima che il client HTTP ricevesse l'URL.

Esistono due rappresentazioni distinte. La codifica URL può rappresentare una barra rovesciata come %5C e un punto interrogativo come %3F. Un segno di percentuale letterale in un comando di file batch deve essere sottoposto a escape come %%.

Per un account illustrativo domain\user con la password segnaposto pass?, un file .bat può contenere:

set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"

Il processo avviato in seguito dovrebbe ricevere un URL contenente domain%5Cuser:pass%3F. I segni di percentuale raddoppiati appartengono alla sorgente batch, non all'URL proxy memorizzato dal client.

Non copiare quella grafia batch in un file .npmrc o nel campo proxy di un'applicazione: quegli input non passano attraverso lo stesso passaggio di analisi batch. Allo stesso modo, questo esempio non è sintassi PowerShell. Un altro wrapper, come CALL o un comando costruito per una seconda shell, può introdurre un'ulteriore passata di analisi e richiede una propria verifica.

Mettere l'assegnazione SET tra virgolette come mostrato, in modo che spazi accidentali o metacaratteri della shell non diventino parte di un comando indesiderato. Le virgolette da sole non impediscono l'espansione della percentuale.

Quando si verifica il risultato, confrontare la codifica attesa con una rappresentazione oscurata invece di stampare l'URL contenente la password in un registro condiviso. Una correzione dell'escape della shell preserva la credenziale; non seleziona uno schema di autenticazione che il client non supportava già.

Articoli correlati