2012-08-08 11 views
5

Fiddlerを使用すると、警告ダイアログが表示されます。fiddler:上書きを無効にする方法ヘッダーホスト

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 

そして、それはフィドラーは「proxy.music.pp.com」にHTTPヘッダーのホストを変更したことを示し、それを変更するフィドラーを無効にする方法はありますか?

+0

どのクライアントがこの(違法な)トラフィックを生成していますか? – EricLaw

答えて

1

これはルールで行うことができます。そして、その関数の最後の行として以下を追加しOnBeforeRequest(oSession: Session)

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

それでもプロトコル違反のエラーが表示されますが、httpヘッダーホストとしてipアドレスが使用されます。 – Peter

+0

これにより、要求が送信されるホスト名も変更されます。問題は、FiddlerがHostヘッダーを無効にするのを防ぐことでした。 –

7

bookから:

カスタマイズルールに移動し、機能を見つける

スワップホストヘッダー

FiddlerがURLがmatcでない要求を取得すると元のホスト値はセッションフラグX-Original-Hostに格納され、次にHostの値はURLから解析されたホストに置き換えられます。 FiddlerScriptのBeforeRequest関数内に置かれた次のスクリプトは、元のHostヘッダーで指定されたホストに要求をルーティングすることによって動作を戻します。

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

「URLホスト」とは何かを理解できませんでした。つまり、通常HTTPにはホストヘッダーしかありません。

よく見るが、この違反は次のようになります。これは、最初のプロキシ「設定」要求のために発生することが表示されます。

CONNECT targaryen:45633 HTTP/1.1 
Host: targaryen 

エラーが私には理にかなっている場所です。

関連する問題