2012-08-08 25 views
5

Al usar Fiddler, aparece un cuadro de diálogo de alerta.violín: cómo deshabilitar sobrescribir 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 

Y muestra que Fiddler cambió host del encabezado HTTP a "proxy.music.pp.com", ¿hay alguna manera de desactivar violinista cambiarlo?

+0

¿Qué cliente genera este tráfico (ilegal)? – EricLaw

Respuesta

1

Puede hacer esto con las reglas.

Ir en reglas personalizar y encontrar la función: OnBeforeRequest(oSession: Session)

continuación, agregue el siguiente como la última línea de esa función:

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

Aún mostrará el error de violación del protocolo, pero usará la dirección IP como el host del encabezado http. – Peter

+0

Esto también cambia el nombre de host al que se envía la solicitud. La pregunta era sobre cómo evitar que Fiddler anule el encabezado del host. –

7

Desde mi book:

Cambie el anfitrión Encabezado

Cuando Fiddler recibe una solicitud cuyo URL no coincide h su encabezado de host, el valor de host original se almacena en el indicador de sesión X-Original-Host y luego el valor Host se reemplaza por el host analizado desde la URL. El siguiente script, ubicado dentro de la función BeforeRequest de FiddlerScript, invierte el comportamiento enrutando la solicitud al host especificado por el encabezado Host original.

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

Yo no entendía lo que se suponía que el "host url" ser - quiero decir, normalmente, no es sólo el encabezado de host en HTTP.

Mirando más de cerca, parece que esta violación se produce por un proxy petición "configuración" inicial, que se ve así:

CONNECT targaryen:45633 HTTP/1.1 
Host: targaryen 

Aquí es donde el error tiene sentido para mí.