技術面接でボコボコにされた備忘録に書いた通り、先日おこなわれた技術面談でボコボコにされた。特にセキュリティ周りの質問に回答できなかったのが悔しかった。
そこでセキュリティの勉強をするために『体系的に学ぶ 安全なWebアプリケーションの作り方 第2版』なる書籍を読んだ。
せっかくなのでその書評をば。
良かった点
体系的、網羅的に学べる
この書籍は667ページもあって、内容は体系的かつ網羅的に書かれている(と思う)。
まずWebアプリケーションのセキュリティに関するページは膨大で、これだけで400ページくらいある。
特にXSSやCSRFの説明はいろいろなパターンで何度も何度も出てくるので、自然と脳に定着すると思う。
自分は技術面接でCSRFのことを聞かれてクリックジャッキングのことを話してしまったが、もう今後間違うことはないだろう。
さらに、終盤では脆弱性診断の方法、ネットワークやマルウェアに関連する脆弱性、開発マネジメントの手法などについても触れられていて、かなり手広くカバーされているという印象。
一家に一台欲しいタイプの本だと思う。
サンプルが充実している
脆弱性を抱えるソースコードが大量に掲載されているので、脆弱性がどのようにして発生しているのかを理解しやすい。
加えてサンプルアプリケーション用のDocker環境も配布されているので、手元で気軽に脆弱性を体験できるのも良い。
微妙だった点
Docker環境のソースコードをいじれない
本書のサンプルはPHPで書かれているので、PHP初心者の自分的には「今このセッションの中身はどうなっているんだろう」みたいにデバッグしたくなることがあった。
ただDocker環境ではソースコードが編集できないようになっていたので(厳密には.tar.gz
を展開した上でソースコードを編集し再圧縮した上でDockerイメージを再ビルドすれば編集できる)、理解が難しい点もあった。
PHPが得意な人にとっては問題ないかも。
認証周りの説明がやや少ない
例えばJWTやOAuthについての説明がほとんどなかった。
自分は仕事ではJWTやOAuthを利用することが多いので、もう少し詳しく知りたかった。
もし第3版が出るなら、ここらへんの説明をもう少し充実させてほしい。
まとめ
総じてかなり良い本だという印象。
上にも書いた通り、一家に一台欲しいタイプの本だと思う。
この本を読んでセキュリティに対するモチベーションが上がってきたので、秋にはセキュリティスペシャリストの試験も受けてみたい。