やりたいこと前提:ZAP側のホストとポートを確認・変更するポイント①プロキシの設定を行う②FirefoxへZAPの証明書をインポートするZAPから証明書をエクスポートするFirefoxに証明書を設定するlocalhostへのアクセスがZAPで追跡されない場合
やりたいこと
Firefoxにプロキシ設定を行い、
ブラウザ(Firefox) → ZAP → 検査対象サーバーというようにZAPを中継してリクエストが行われるようにしたい。
前提:ZAP側のホストとポートを確認・変更する
ZAPはデフォルトで localhost:8080でプロキシサーバーが立ち上がる。
ローカルで起動させるアプリケーションはこのポートを使うことがよくあるので
ZAP側はあまり使われないポートで立ち上げておくほうが良い。
「オプション>ネットワーク>ローカルサーバー/プロキシ」を選択して
例えば localhost:58888のような値で起動するように設定しておく。

ポイント
- Chromeはブラウザ単位でプロキシ設定ができないため、Firefoxが良い
- Firefoxでは「脆弱性診断」専用のプロファイルを設定しておくと、管理しやすい
①プロキシの設定を行う
「プライバシーとセキュリティ>プロキシー設定」を選択。

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

②FirefoxへZAPの証明書をインポートする
ZAPから証明書をエクスポートする
「オプション>ネットワーク>サーバー証明書」

「保存」ボタンからルートCA証明書を保存する。
Firefoxに証明書を設定する
「プライバシーとセキュリティ>証明書>証明書を管理」を開く。

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

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

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

これで、このFirefoxのプロファイルでアクセスしたWebサイトは全てZAPの観測対象になる。
localhostへのアクセスがZAPで追跡されない場合
localhost:3000にアクセスしたときのログはZAPに出てこない場合がある。
この理由は、Firefoxでは locahostへの接続はプロキシなしで接続されてしまうため。

これを解消するためには
- Firefoxのアドレスバーで
about:configを開く。 network.proxy.allow_hijacking_localhostを検索する。trueに変更する。
という対応が必要。
