LoginSignup
4
3

More than 5 years have passed since last update.

mitmproxy を使ってアプリの API を無理やり PC のローカル開発環境に向ける

Posted at

ほぼ以前書いたmitmproxy を使ってアプリの API を無理やり開発環境に向けると同じですが、相違点は以下の通りです。

  • 前回はリモートのどこかにある開発環境を意図していたが、今回はローカルの開発環境で動くサーバに接続する
    • そして mitmproxy と開発サーバは同一のマシン上で立ち上げる前提
  • 前回は本番環境も開発環境も同じプロトコル (HTTPS) という前提だったが、今回は本番環境は HTTPS で開発環境は HTTP とする
    • Rails とかの開発サーバを HTTPS で立ち上げることは稀だと思います
    • (主にこれのやり方がわからず調べるのに手間取ったので、こうして記事に残してます)

手順

mitmproxy の導入については以前の記事に書いてあるので割愛。
今回もやはり Python スクリプトによるリクエストの改ざんを行います。

replace_host.py
def request(context, flow):
    # 本番環境 (リクエスト改ざん対象のホスト)
    original = "api.example.com"
    # 開発環境 (同一マシンという前提なのでループバックを指定)
    replace  = "127.0.0.1"

    if original in flow.request.host:
        if original in flow.request.headers["Host"]:
            # 開発サーバは HTTP
            flow.request.scheme = "http"
            flow.request.host = replace
            # 開発サーバのポート番号を指定
            flow.request.port = 3000
            flow.request.headers["Host"] = [replace]

そして以下のように起動します。

$ mitmproxy -p 8080 -s replace_host.py

あとはこのプロキシを使うように準備した iPhone 等から接続してアプリを実際に操作するだけ。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3