こんにちは、第二ソリューション開発部の谷口です。
受託開発の部署で開発を担当してます。
APIを扱う機会が多く、今回は通信内容を確認するためのローカルプロキシツール「Burp」について書かせて頂きます。
Burpとは
Webアプリケーション開発時の検証において、Webサーバとブラウザ間の通信内容を確認するケースがあると思いますが このような時にローカルプロキシツールはとても役に立ちます。 Burp Suiteは様々な機能を持っており、その中で私が最も使う機能は「Proxy」です。 診断やデバッグに必須の機能で、 APIからレスポンスは返ってきているのか? 無駄な通信処理は行ってないか? などの通信処理を確認できるので、通信処理を行うアプリケーションには必須のデバッグツールとなっています。 ローカルプロキシツールは、クライアントマシン上で動作します。 これによりブラウザからのリクエストを一旦キャプチャして、 内容を変更した上でWebサーバへリクエストすることができるようになります。
Burpの設定では大きくPC側の設定(プロキシサーバの構築)と端末側の設定で分かれます。 プロキシサーバーを構築後、端末設定を行う必要があるため手順に注意して下さい。
PC側の設定(プロキシサーバ構築)を行う
Proxy(プロキシサーバ)とは
プロキシ(代理)という言葉が示す通り、インターネット上の目的のコンテンツ(Webページやファイル等)を ユーザのコンピュータの代わりに取って来てくれる機能を提供するサーバです。 中継しているため、通信処理の取得が可能となっています。
1.Burp SuiteのFreeEditionをダウンロードし起動する
https://portswigger.net/burp/download.html
2.Proxyを選択してIntercept offにする
3.wifi環境を設定
4.Addを選択しネットワークを選択する
5.Specific addressを選択してBurpに加える
これでPC側の設定(Proxyサーバー)の出来上がりです。
端末の設定を行う。
6.iPhone/Androdと繋げるため証明書を取得する
端末のブラウザを開き端末(スマートフォン)とPCが接続しているネットワークのIPアドレスを入力する。 CA certificateを選択して証明書をインストールする。 デフォルトだと拡張子は .derでダウンロードできる。 (Androidの場合拡張子は.cerに変更してインストールする必要がある)
7.インストールしたらProxyをPCのBurpで設定したものと揃える
8.Burpを起動してHTTP historyを選択する
通信が見れます!
これを使えば 通信処理のリクエストが送れているか? レスポンスが返ってきているか? どんな値が返ってきているのか? などなど可視化できるようになります。
以上、Burpの説明でした。