Possono reindirizzare le richieste di intestazione HTTP_PROXY CGI di IIS

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 3179800
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.
Cause
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 di curvatura e libraryare in genere utilizzato per enablevarious 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 la curvatura è ospitato all'interno di un processo CGI e tale processo contiene una variabile di ambiente è denominata "HTTP_PROXY", punta arricciata utilizza il relativo valore ai dati sendrequested attraverso 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.
Workaround
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.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 3179800 - Ultima revisione: 07/21/2016 09:39:00 - Revisione: 2.0

Windows 10, Windows 10 Version 1511, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 Foundation, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows 8.1, Windows RT 8.1, Windows Server 2012 Datacenter, Windows Server 2012 Standard, Windows Server 2012 Essentials, Windows Server 2012 Foundation, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2

  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability kbmt KB3179800 KbMtit
Feedback