3

ポートでローカルに http サーバーを実行しています8181。デバイスにmitmproxy構成があり、特定のドメインからの要求をローカル サーバー インスタンスに転送する必要があります。したがって、ここで説明するリクエスト リダイレクトのサンプル スクリプトを使用しています。

def request(flow):
    # pretty_host takes the "Host" header of the request into account,
    # which is useful in transparent mode where we usually only have the IP
    # otherwise.

    # Method 2: Redirect the request to a different server
    if flow.request.pretty_host.endswith("mydomain.com"):
        flow.request.headers["Host"] = flow.request.headers
        flow.request.host = "localhost"
        flow.request.port = 8181
        flow.request.scheme = 'http'

これは機能しますが、ヘッダーを元のリクエストホストに設定する必要があるため、ここで説明されているHostヘッダーの追加の例に従いました。

flow.request.headers["Host"] = flow.request.headers

しかし、リクエストにこのヘッダーセットが表示されず、サーバーログmitmproxyにも表示されません。localhost

だから私はそれを同じにしたいcURL

curl -b c -c c "http://localhost:8181/something" -H "Host: mydomain.com"

少なくとも次のような必要なリクエストヘッダーを持つために

*   Trying ::1...
* Connected to localhost (::1) port 8181 (#0)
> GET /something HTTP/1.1
> Host:mydomain.com
> User-Agent: curl/7.43.0
> Accept: */*
4

1 に答える 1