勉強したいと思っている分野だったので、こちらの書籍を購入しました。
実際にPHPで構築したサーバへの操作を通じてセキュリティに関する知識を学ぶのですが、
そのための環境構築の手順がWindows向けに書かれており、
macでの環境構築に多少手間取ったのでメモ。
1. 仮想OSのセットアップ
macでもwebサーバは付属CDに入っているUbuntuを使用しますが、
仮想OS用のソフトとしてVMWare Playerにmac向けの無償版はないので
VirtualBoxを使用。
まず、付属CDからWASBOOK.zipをコピーし、解凍。
中に入っているwasbook.vmdkをVirtualBoxで使用できる.vdiに変換する。
もしかしたらそのまま.vmdkでいけたのかもしれないのだけれど、
私は以下のコマンドで.vdiに変換して仮想マシンを新規作成しました。
Vboxmanage clonehd --format VDI wasbook.vmdk wasbook.vdi
なお、このコマンドは
こちらのサイトを参考にさせていただきました。
2. ネットワークの設定
書籍ではUbuntuを起動後
ifconfig eth0
コマンドでIPアドレスを確認できると書いてあるが、
mac + VirtualBoxではその前にちょっとした設定がある。
2.1 VirtualBox自体の設定。
下のように、ネットワークの設定をブリッジにする。
(この、仮想OSのネットワークの種類が全然わからないんだよな...調べないと)
2.2 Ubuntu内のネットワークの設定ファイルを編集。
設定ファイルは
/etc/network/interfaces
にある。
また、こちらの記事
「体系的に学ぶ 安全なWebアプリケーションの作り方(wasbook)」の仮想マシンを mac の VirtualBox で動かす - techlog
にもあるように、VirtualBoxのアダプタ1で設定したネットワークは
Ubuntuではeth0でなくeth1になる模様。
なので、/etc/network/interfacesに次の2行を追加。
auto eth1 iface eth1 inet dhcp
保存後、設定を反映。
ifup eth1
これでifconfig eth1とやるとinet addrがちゃんと表示されます。
2.3 macのhostsファイルの編集
書籍のp17,18あたり。
example.jp、trap.example.comを設定ファイルに追加します。
macのhostsファイルはここです。
/private/etc/hosts
書くことは書籍に書いてることと同じ。
ここまでで、書籍を勉強するための環境は構築できたはずです!
3. Fiddlerのかわりになるツールを探す
解析ツールとして紹介されているFiddlerってのもWindowsでしか使用できないのね。
ただ、httpのリクエスト・レスポンスを見るだけなら
Chromeのデベロッパーツールなり
FirefoxアドオンのFirebugで表示できるので問題はないです。
以下は、書籍を読みながら色々ツールを使ってみた感想のようなもの。
- hiddenパラメータを書き換える(p.36)
FiddlerのAuto Breakpointsに該当するような機能は
おそらくChromeデベロッパーツールやFirebugにはありません。
macで同じようなことを試してみるためのツールとしては
Tamper Data というFirefoxアドオンがありました。
https://addons.mozilla.org/ja/firefox/addon/tamper-data/
こんな感じでPOSTパラメータを書き換えたりすることができますが、
日本語とかはURLエンコードされた文字を指定しないといけないようです。
これもFiddlerには機能としてあるけどFirebugとかにはないですね。
と思ったらFirebugでは以下のようなエンコード/デコードのメソッドがあるようです。
# エンコード btoa("文字列") # デコード atob("文字列")
これを使えば、Basic認証の文字列を変換して中身を確認することができますね。
まあ、書籍の中でここはそこまで重要じゃなさそうですけど。
4. さいごに
最初は戸惑いましたが、ググるとけっこう情報が出てくるので何とかなりました。
また、
「サンプルとして表示しているphpファイルってUbuntuのどこにあるんだ?」
っていうのが気になって調べたのですが、ここにあります。
# phpファイルの配置場所 /var/www 以下 # apacheの設定ファイル(macでいうhttpd.conf) /etc/apache2/apache2.conf