上野 まずはアップロードできるファイルの種類をチェックしてみよう。
荒井 はい。今回は予定にテキストや画像などのファイルを添付できるようにしています。
上野 うん。どんな形式のファイルが求められているか考えるのは重要だね。一方で、便利だからといってどんな形式のファイルでもアップロードできるようになっているとさすがに危険かな。
上野 例えばこの「info.php」という名前のファイルをアップロードしてみよう。PHPファイルの添付は禁止されていないので当然そのまま投稿できる。
荒井 あ……。
上野 なんとなく分かってきたかな? アップロードできたら、登録した予定のページから添付ファイル「info.php」を開くと……。PHPファイル内のコマンドが実行されてしまう。
上野 今回はPHPの設定を表示する「phpinfo」コマンドのみ記載していたから設定が表示されるだけで済んだ。でも、要するにサーバでプログラムが動いているわけだから、悪意のあるプログラムを使った遠隔操作などの攻撃を受ける可能性もある。
荒井 これは……大変ですね。
上野 うん。他の手口もたくさん考えられるから、こういう機能を作るときは、アップロードする必要のあるファイル形式を洗い出して、それ以外は登録できないようにするのがいいね。今なら画像ファイル(PNG、JPEGなど)やPDFファイルくらいに絞っておくのがいいかな。
荒井 分かりました。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR