Webセキュリティ入門:HTTP・Cookie・脆弱性
プロキシ(Proxy)とは
この回でやること
プロキシとは、通信の途中に立って、送る前の要求を見たり変えたりする仕組みです。
- 読む 約 5 分
- 最後にクイズ 1 問
このレッスンで学ぶこと
Proxy は、ブラウザとサーバーの間に立って、通り過ぎる要求と返答を中継する仕組みです。開発者ツールと何が同じで何が違うのかを、立っている位置から確かめます。
読み終えるころには、開発者ツールとの役割の違いを説明できます。
途中に立つ
Proxy は、ブラウザとサーバーの間に置く中継役です。ブラウザは Proxy に要求を渡し、Proxy がサーバーへ送ります。返答も同じ経路を戻ります。
途中に立っているので、通り過ぎるものを見ることも、止めることも、書き換えることもできます。
開発者ツールとの違い
開発者ツールでも通信は見られます。違いは介入できるかどうかです。
| 開発者ツール | Proxy | |
|---|---|---|
| 見る | できる | できる |
| 送信前に止める | できない | できる |
| 書き換えて送る | 基本はできない | できる |
| ブラウザ以外の通信 | 見えない | 見える |
送る前に止められることが大きな差です。前の回で「ブラウザ側の確認は防御にならない」と学びましたが、Proxy はそれを実際にやってみせる道具になります。
画面を通らずに送れることの実演
入力欄の制限を通ったあとで、送信の直前に値を差し替える。これが成立することを自分の目で見ると、サーバー側で確かめ直す理由が腑に落ちます。
HTTPS を見るとき
HTTPS は途中で読めないようにする仕組みなので、そのままでは Proxy にも中身が見えません。見るには、Proxy が発行する証明書を自分のブラウザに信頼させる必要があります。
ここで大事なことが2つあります。
- これは自分の環境に自分で入れる設定です。他人の環境に勝手に入れてはいけません
- 検証が終わったら外します。入れたままにすると、その Proxy を信じ続けることになります
使ってよい相手
Proxy は通信をそのまま見られるので、扱いを間違えると重大です。自分が所有しているか、明示的に許可を得た対象にだけ使います。この講座では、用意した演習環境に対してのみ使います。