読者です 読者をやめる 読者になる 読者になる

dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

follow us in feedly

「体系的に学ぶ 安全なwebアプリケーションの作り方」の環境構築をmacで行う

mac wasbook

勉強したいと思っている分野だったので、こちらの書籍を購入しました。

実際に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のネットワークの種類が全然わからないんだよな...調べないと)
f:id:dackdive:20140114003740p:plain

 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アドオンがありました。
Tamper Data :: Add-ons for Firefox
f:id:dackdive:20140114011254p:plain
こんな感じでPOSTパラメータを書き換えたりすることができますが、
日本語とかはURLエンコードされた文字を指定しないといけないようです。

これもFiddlerには機能としてあるけどFirebugとかにはないですね。
と思ったらFirebugでは以下のようなエンコード/デコードのメソッドがあるようです。

# エンコード
btoa("文字列")
# デコード
atob("文字列")

これを使えば、Basic認証の文字列を変換して中身を確認することができますね。
まあ、書籍の中でここはそこまで重要じゃなさそうですけど。

4. さいごに

最初は戸惑いましたが、ググるとけっこう情報が出てくるので何とかなりました。
また、
「サンプルとして表示しているphpファイルってUbuntuのどこにあるんだ?」
っていうのが気になって調べたのですが、ここにあります。

# phpファイルの配置場所
/var/www 以下
# apacheの設定ファイル(macでいうhttpd.conf)
/etc/apache2/apache2.conf