エンジニアを目指す初学者に向けて、わかりやすく解説したブログです。

【ZAP】FirefoxでZAPのプロキシ設定を行う

やりたいこと

Firefoxにプロキシ設定を行い、

ブラウザ(Firefox) → ZAP → 検査対象サーバー

というようにZAPを中継してリクエストが行われるようにしたい。

前提:ZAP側のホストとポートを確認・変更する

ZAPはデフォルトで localhost:8080でプロキシサーバーが立ち上がる。

ローカルで起動させるアプリケーションはこのポートを使うことがよくあるので
ZAP側はあまり使われないポートで立ち上げておくほうが良い。

Icon in a page linkZAP – Configuring Proxies

「オプション>ネットワーク>ローカルサーバー/プロキシ」を選択して
例えば localhost:58888のような値で起動するように設定しておく。

Image in a image block

ポイント

  • Chromeはブラウザ単位でプロキシ設定ができないため、Firefoxが良い
  • Firefoxでは「脆弱性診断」専用のプロファイルを設定しておくと、管理しやすい

①プロキシの設定を行う

「プライバシーとセキュリティ>プロキシー設定」を選択。

Image in a image block

「手動でプロキシーを設定する」という項目からZAPのプロキシサーバーである localhost:58888を設定する。

Image in a image block

②FirefoxへZAPの証明書をインポートする

ZAPから証明書をエクスポートする

「オプション>ネットワーク>サーバー証明書」

Image in a image block

「保存」ボタンからルートCA証明書を保存する。

Firefoxに証明書を設定する

「プライバシーとセキュリティ>証明書>証明書を管理」を開く。

Image in a image block

「認証局証明書>読み込む」を開く。

Image in a image block

先ほどダウンロードした証明を選択し、信頼するチェックボックスを入れてOKを押す。

Image in a image block

「認証局証明書」の一覧の中にZAPの証明書が含まれていればOK。

Image in a image block

これで、このFirefoxのプロファイルでアクセスしたWebサイトは全てZAPの観測対象になる。

localhostへのアクセスがZAPで追跡されない場合

localhost:3000にアクセスしたときのログはZAPに出てこない場合がある。

この理由は、Firefoxでは locahostへの接続はプロキシなしで接続されてしまうため。

Image in a image block

これを解消するためには

  1. Firefoxのアドレスバーで about:config を開く。
  2. network.proxy.allow_hijacking_localhost を検索する。
  3. true に変更する。

という対応が必要。