Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Quando si utilizza la funzionalità di IIS Common Gateway Interface (CGI) per ospitare un programma eseguibile che utilizza una determinata libreria di reindirizzare le richieste, le richieste possono essere indirizzate in base alla presenza di un'intestazione di richiesta di "PROXY". Utilizzare questa libreria noto diverse piattaforme di applicazioni web. Ad esempio PHP, Python e Vai, tra gli altri.

Causa

CGI è un'interfaccia che consente a un server web per ospitare le applicazioni che vengono eseguiti come processi eseguibili. Quando viene ricevuta una richiesta da un server web, il server viene avviato un nuovo processo per gestire tale richiesta singola. Quando la richiesta viene completata, il processo termina. Affinché il processo di accedere ai dati della richiesta, le intestazioni di richiesta sono incluse come le variabili di ambiente con "HTTP _" anteposto al nome. Pertanto, i processi CGI per le richieste che contengono un'intestazione denominato "Proxy" sono una variabile di ambiente "HTTP_PROXY" che hanno lo stesso valore di intestazione della richiesta.

La riga di comando cURL e libreria sono utilizzate per attivare i vari tipi di applicazioni per effettuare richieste in vari tipi di server, inclusi i server web. Questa libreria può essere configurata utilizzando i parametri della riga di comando oppure è possibile leggere i parametri di configurazione le variabili di ambiente del processo host. "HTTP_PROXY" è uno dei molti parametri di configurazione utilizzati dalla punta arricciata. "HTTP_PROXY" viene utilizzato dalla punta arricciata per inviare una richiesta HTTP tramite il proxy configurato.

Nota: Ciò è correlato "HTTP_PROXY" come rappresentazione di un'intestazione di richiesta del client.

Quando curvatura è ospitato all'interno di un processo CGI, e tale processo contiene una variabile di ambiente è denominata "HTTP_PROXY", il relativo valore curvatura utilizza per inviare i dati richiesti tramite il proxy HTTP, il cui valore è specificato nella variabile di ambiente. Ciò si verifica in quanto punta arricciata prevede che "HTTP_PROXY" è una direttiva di configurazione e non un'intestazione di richiesta del client.

Soluzione alternativa

Per risolvere questo problema, non utilizzare CGI in un server che esegue IIS. CGI è un'interfaccia in gran parte obsoleta che viene sostituita dalle interfacce più recente e più correlati alle prestazioni. In particolare, PHP, Python e Go deve essere ospitato tramite FastCGI in IIS. FastCGI non utilizza le variabili di ambiente per le intestazioni di richiesta client e non dispone di questo problema. Tuttavia per PHP, alcune applicazioni possono utilizzare PHPs getenv() funzione per recuperare le variabili di ambiente. Anche quando PHP non è ospitato all'interno di un processo CGI, replicare il comportamento CGI inserendo i valori dell'intestazione di richiesta nella serie di dati disponibili per la funzione getenv() . Se si utilizza un'applicazione PHP che recupera HTTP_PROXY in questo modo, la seguente attenuazioni di cancellare il valore dell'intestazione o il rifiuto delle richieste con un'intestazione PROXY sono efficaci.

Se è necessario utilizzare CGI per qualche motivo, bloccare le richieste che contengono un'intestazione di richiesta denominata "Proxy" o cancellare il valore dell'intestazione.  Ciò avviene perché "Proxy" non è un nome di intestazione di richiesta standard e i browser generalmente non invierà ad esso.

Per bloccare una richiesta contenente un'intestazione Proxy (la soluzione migliore), eseguire la seguente riga di comando:

appcmd set config /section:requestfiltering / + requestlimits.headerLimits. [intestazione = 'proxy' sizelimit = "0"]
Nota: Il appcmd.exe non è in genere nel percorso ed è reperibile nella directory %systemroot%\system32\inetsrv

Per cancellare il valore dell'intestazione, è possibile utilizzare la seguente regola di riscrittura degli URL:

<system.webServer>    <rewrite>
<rules>
<rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">
<match url="*.*" />
<serverVariables>
<set name="HTTP_PROXY" value="" />
</serverVariables>
<action type="None" />
</rule>
</rules>
</rewrite>
</system.webServer>


Nota: La riscrittura URL è un componente aggiuntivo scaricabile di IIS e non è incluso in un'installazione predefinita di IIS.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×