徐々に生活リズムを戻すべく、8時に起きてみた。眠い。というか入眠に時間がかかったせいで睡眠時間が少ない。そろそろ酒が必要では。
正午前に美容院を予約しておいたので、髪を先月と同じ程度まで切って貰った。平日の少ない日に髪を切りに行けるのも、今月で最後か……。
カプコンが太っ腹なセールを始めたので、クリア済みの『逆転裁判123』以外のシリーズ作品(『逆転裁判4』『逆転裁判5』『逆転裁判6』『大逆転裁判』『大逆転裁判2』)を購入した。間違いなく休暇中には遊び終わらない。
ニンテンドーeショップの使い勝手がとにかく悪く、買い物する上で非常にストレスが溜まった。SNS連携でログインしている「ニンテンドーアカウント」に、「eショップで買い物するにはパスワード設定しろ」と言われ、本当に意味が分からなかったが、どうもゲームソフト購入前に必ずパスワードを入力させるフローになっている事が理由のようだ。ここは合点が行った。そしたら、パスワード設定完了をトリガーにして、ニンテンドーアカウントSNS連携でログインしていたスマートフォンゲーム(例:FEH)が全て強制ログアウトされ、パスワード認証を求められた。何でやねん。
また、eショップでのクレジットカード情報を使った購入も20回くらい失敗し、エラーメッセージから何の情報も読み取れず、途方に暮れた。どうもバックエンドでは、
多分こんな感じのフローが行われており、どこかでコケた時はエラー画面に飛ぶようだ。諦めて2時間ほど放置していたら、購入が成功するようになった。
自分がアプリケーションエンジニアだから、ある程度の想像はつくし、決済トランザクションの難しさは理解できるのだが、これ一般のゲームユーザーには我慢してもらえないのではないか。「ニンテンドーアカウント」と「ニンテンドーネットワークID」との違いに至っては、任天堂の主要顧客である親子ユーザーに通じるとは思えない。何となく、3DSが想定外にご長寿プラットフォームになった事が事態をややこしくしているように見受けられるが、繰り返しだけど一般のゲームユーザーにはそんな都合は関係ないからね。
インターネットに強いHてな社が任天堂と協業してるんだから、もうちょっと頑張って欲しい。eショップに関してはHてな社はノータッチなのだろうか。もしくは、eショップも一緒に作ってるけど現状の使い勝手なのか。
あと、話は変わって、ガソリンスタンドに寄ったらガソリン価格がまた少し下がっていた。自分の入れてるレギュラーで136円/Lになった。しかし、せめて1Lあたり120円台になってくれないと、気軽に給油できる気分ではないなぁ。
読んだのは、紙の書籍で第1版の第13刷です。本書は第2版の発売が予告されており改訂内容も多岐に渡るため、第1版時点の章立てを引用しておきます。
1章 Webアプリケーションの脆弱性とは
2章 実習環境のセットアップ
3章 Webセキュリティの基礎 ~HTTP、セッション管理、同一生成元ポリシー
4章 Webアプリケーションの機能別に見るセキュリティバグ
5章 代表的なセキュリティ機能
6章 文字コードとセキュリティ
7章 携帯電話向けWebアプリケーションの脆弱性対策
8章 Webサイトの安全性を高めるために
9章 安全なWebアプリケーションのための開発マネジメント
本書の特筆すべき点は、学ぶポイントを「Webアプリケーション」に絞り、ミドルウェアやプラットフォーム特有の注意点については資料ポインタを示すに留めるなど、「境界線」が極めて明確なところでしょう。お陰で「Webアプリケーションエンジニア」とは、どういった業務を担う役割で、どんな知識が必要か、立ち位置がとても分かり易くなっています。
中でも4章の「Webアプリケーションの機能別に見るセキュリティバグ」は、インジェクション系の脆弱性はすべからく「データの終端」で特殊文字が注入されデータの構造が変わってしまうことに起因する、という大原則を最初に提示した上で、膨大な攻撃パターンと事例を紹介しています。登場するコードスニペットの多くはPHP(またはPerl)で、設定ファイルもPHPやASP.NETが中心ですが、獲得できる知識は他のプログラミング言語やテンプレートエンジンにも応用できる、汎用的なものです。
いわゆる「ガラケー」における脆弱性の章は、第2版で削除されることが予告済みの内容ですが、2018年に読んでみると「iPhoneにSafariが載ってAndroidにChromeが載った事は、本当に画期的だったのだなぁ」と思わされます。「iモードは画期的だった」「日本はガラパゴスと言われるけど当時は世界最先端だった」という言説は、一見正しかったように感じても、やっぱりガラケーブラウザの実装がクソ過ぎた。
数千円の出費でこれだけの内容をコンパクトに学べる、非常に優れた内容で、VM環境をサンドボックスとして用意して企業の集合研修などにも使えると言えます。講師を用意するのが大変ですが。
以下に幾つか本書で「これ良いな」と思った点を記録・引用します。
「入力」「処理」「出力」の順序と、データストア先で留意すべき脆弱性がコンパクトに表現されている。
記号や特殊文字が「正規表現」の文脈において、どんな意味を持つか解説されたもの。
コードレビュー時にホワイトボードにこういうの書いたら、認識合わせに捗りそう。
文字出力する文脈ごとに、何をエスケープするかの対応表。
「データの終端」に気を付けるという本書の大原則に沿ってまとめており、分かり易い。
とくに混同しがちな部分。
新人アプリケーションエンジニアには、表4-9みたいに教えるのが良さそう。
尾骶骨テスト、キャッチーな名前だ。
キャッチーな名前が付くことは大事。
最近のツッコミ
参号館 日記(ariyasacca)