2012-08-08 12 views
5

Quando si usa Fiddler, si apre una finestra di avviso.fiddler: come disattivare l'overwrite Header Host

Fiddler has detected a protocol violation in session #14. 

The Request's Host header did not match the URL's host component. 

URL Host: proxy.music.pp.com 
Header Host: 119.147.22.41 

E si vede che ha cambiato Fiddler host del HTTP Header a "proxy.music.pp.com", non v'è alcun modo per disattivare Fiddler cambiarla?

+0

Quale client genera questo traffico (illegale)? – EricLaw

risposta

1

È possibile farlo con le regole.

Vai in regole personalizzare e trovare la funzione: OnBeforeRequest(oSession: Session)

quindi aggiungere il seguente come ultima riga di questa funzione:

if (oSession.HostnameIs("proxy.music.pp.com")) { oSession.host = "119.147.22.41"; } 
+0

Mostrerà ancora l'errore di violazione del protocollo, ma utilizzerà l'indirizzo IP come host dell'header http. – Peter

+0

Modifica anche il nome host a cui è stata inviata la richiesta. La domanda era di impedire a Fiddler di ignorare l'intestazione Host. –

7

Dal mio book:

Swap Host Intestazione

Quando Fiddler riceve una richiesta il cui URL non è matc h la sua intestazione Host, il valore Host originale è memorizzato nel flag di sessione X-Original-Host e quindi il valore Host viene sostituito con l'host analizzato dall'URL. Lo script seguente, inserito nella funzione BeforeRequest di FiddlerScript, inverte il comportamento indirizzando la richiesta all'host specificato dall'intestazione Host originale.

if (oSession.BitFlags & SessionFlags.ProtocolViolationInRequest) 
{ 
    var sOverride = oSession["X-Original-Host"]; 
    if (!String.IsNullOrEmpty(sOverride)) 
    { 
    oSession["X-overrideHost"] = sOverride; 
    oSession["ui-backcolor"] = "yellow"; 

    // Be sure to bypass the gateway, otherwise overrideHost doesn't work 
    oSession.bypassGateway = true; 
    } 
} 
0

non ho capito quello che il "host url" doveva essere - voglio dire, di solito, c'è solo l'intestazione host in HTTP.

Guardando più da vicino, sembra che questa violazione si verifica per un proxy richiesta di "setup" iniziale, che assomiglia a questo:

CONNECT targaryen:45633 HTTP/1.1 
Host: targaryen 

Questo è dove l'errore ha senso per me.