星野君は自席に戻ると、早速、Web申し込みフォームの制作作業に取り掛かった。もしかしたら、もう少し詳細な情報が得られるかもしれないと思い、かすかな期待を込めて平野部長に聞いてみた。
星野君 「『セミナーWeb申し込みフォーム』なんですけど、具体的な仕様って決まってるんですか?」
平野部長 「ああ、そういえばそこには書いてないな。セミナーの担当者にメールで送られてくるように作ってもらえればいいみたいだ。いろいろ書いてあるメールを転送しておくよ。後は任せたから適当に作ってくれ」
決まっていることは、セミナー申し込みの文面と担当者のメールアドレスだけのようだ。星野君の期待は見事に打ち砕かれた。
星野君は、まず以下の図のような構成でWebフォームを作ることにした。入力フォーム、確認画面、送信完了画面というよくある3画面構成だ。入力項目は、氏名、会社名、電話番号、メールアドレス、およびフリー入力の項目があればよいらしい。言語は星野君が慣れ親しんでいるPHPで作ることにした。
この日は配属替えに伴う作業もいろいろあり、すでに遅い時間になっていた。星野君は、制作作業を次の日に持ち込むことにした。
次の日の朝、星野君はいつもより早く来て作業をしていた。一番に出社したつもりだったが、同じくWeb担当の高橋さんがすでに出社しているらしかった。
「らしかった」というのは、彼の荷物がありPCの電源が入っているからそう感じただけで、席に姿がなかったからだ。いつものごとく喫煙所にいるのだろう。「そういえば、昨日は高橋さんを、席を移動したときと退社のときの2回しか見てないな」などと思いつつ星野君は早速作業に取り掛かる。
最近は、Webアプリケーションも「セキュリティ」にうるさいから注意して作成しなくてはならない。
星野君 「Webアプリケーションのセキュリティといえば、やっぱクロスサイトスクリプティングだよな」
なんて偉そうにつぶやいてはみたものの、星野君が知っているのはクロスサイトスクリプティングくらいだ。しかもクロスサイトスクリプティングによって、何が困るのかもよく分かっていなかったりするのだが……。
【クロスサイトスクリプティングによる被害】
代表的な被害は、セッションIDの盗難によるセッションの乗っ取りなど。そのほか、Webページの見た目をJavaScriptで書き換えることで正規のサイトを利用したフィッシング詐欺なども起こり得る
PHPには「htmlspecialchars()」という関数があるので、それを使うことにした。「<」「>」「”」といった記号をサニタイジング(無効化)し、それぞれを「<」「>」「"」に変換してくれるものだ。あとは、各入力項目の形式をチェックする機能を入れることにした。
前職の経験もあり、木曜の夕方には一通り機能を果たすものを完成させることができた。
しかし、星野君は少し不安だった。新しい担当になって最初の仕事で失敗はしたくない。
山下君にメッセンジャーで相談してみる。
星野君 「Webアプリ作ってるんだけどさ、セキュリティとかよく分かんないから知ってたら教えてほしいんだけど」
山下君 「えー。Webアプリのセキュリティはあんまりよく分かんないなぁ」
星野君 「そっかー。じゃあ、ひとまずこれでいいかな」
山下君 「お、もう出来上がってるの?」
星野君 「うん」
山下君 「だったら、まこと先輩がちょっと詳しいみたいなことをいってたから、後で聞いてみるよ。もう置いてあるならURL教えて」
星野君は、山下君にWebサーバ上に設置した「セミナーWeb申し込みフォーム」のURLを教えた。予定より早く出来上がったので、昨日整理途中のままで放っておいた引越しの荷物を片付けてその日の仕事を終えた。
Copyright © ITmedia, Inc. All Rights Reserved.