連載
» 2004年12月08日 02時02分 公開

90Xi専用ゲームiアプリ開発講座:第8回 90xiアプリのこれから (2/2)

[澤橋辰典・武上将樹,ITmedia]
前のページへ 1|2       

セキュリティ

 携帯端末内で実行されているアプリであれば、基本的には開発者の意図に反した使い方により、開発者がなんらかの損害を負うということは考えられない。しかし、インターネット上に公開され、運用されているシステムにおい

ては、話が大きく違ってくる。

 iアプリと連動するWebシステムに関していうならば、まず2つのことに気をつなくてはいけない。1つは、システムにアクセスしてきた「何か」が、自分が開発したiアプリでないかもしれないということだ。

 今回開発したWebシステムではarena.phpというゲートウェイにHTTP通信を行うが、何も対策をしないと、PCからのアクセスで簡単に勝率をいじられてしまう危険がある。これは認証をかけて回避してもよいが、一番簡単な防衛策は、Apacheを設定して、arena.phpの置かれたディレクトリ以下のアクセスをドコモのサーバを経由してきたもの(すなわちiモード、あるいはiアプリ)のみに制限してしまうのがよい。

 Apacheのhttpd.confを編集してもよいが、これを編集するには通常サーバ管理者並みの高い権限が必要になるので、今回はhttpd.confと同等の設定をディレクトリ単位で行うことのできる、“.htaccess”を使ったやり方で行う。

 具体的には、.htaccessというテキストファイルを作って、

Order Deny,Allow
Deny from all
Allow from 210.153.84.0/24
Allow from 210.136.161.0/24

と追加し、保存して規制したいディレクトリにおくだけでよい。ドコモのIPアドレス以外からのアクセスをシャットアウトしてくれる。

 これで、携帯端末以外からの意図しないアクセスを除くことができるが、これだけでは、まだ不十分だ。

 次に気を付けるべきなのは、「SQLインジェクション」と呼ばれる攻撃だ。これは、FORM入力時に不正なSQL文を混入させることで、不正にデータを閲覧したり、すべてのデータを削除したりされてしまうというものである。

 今回は上手く注入できそうな箇所が、“運よく”見つからなかったが、仮にユーザ名で検索して成績を表示させる機能を追加したとして、内部で実行されるSQl文が

SELECT * FROM user WHERE username = '入力'

であった場合、

';DELETE FROM user WHERE 'TRUE' = 'TRUE

という、入力が行われると、

SELECT * FROM user WHERE username = '';DELETE FROM user
 WHERE 'TRUE' ='TRUE'

 という文が実行され、データがすべて削除されてしまう。これを防ぐためには入力値の文字数や型などをきちんとチェックすることや、クオーテーションマークやセミコロンといった危険な文字を、プログラムでエスケープしておく必要がある。

これからの展望

 最後に、本連載で解説したゲームアプリで使える手法のおさらいと、よりよいゲームアプリにしていくためのアイデアを紹介する。

本連載で解説したこと

  • 90xiアプリを作成する背景
  • 文字、図形描画
  • イメージ描画
  • キーイベント処理
  • シーン別処理とその設計
  • 乱数処理
  • 写真撮影と画像解析
  • スクラッチパッドへのアクセス(データ読み書き)
  • ネットワークから画像取得、保存
  • 画像の部分描画
  • サーバ環境構築
  • データベースのテーブル構築
  • ダウンロード時のユーザ管理(端末ID取得)
  • DBへのアクセス
  • ネットバトル時のセッション管理
  • スクリプトとアプリ間でのデータのやりとり
  • セキュリティ
  • 赤外線通信

 よりゲームを面白くしてゆくためには、多くのユーザが、何度も遊んでくれるような機能を付加しなくてはならない。今回は「アプリ★ゲット編集部」として、人気のあるアプリがどのような機能を実装しているかを分析して紹介する。

 最近の人気アプリは必ずといっていいほどネットランキングを実装している。今回のアプリで実装するならば話は簡単である。勝利数ランキングを表示したいならば、勝利数をDBからSELECTする際に、

    ORDER BY 勝利数

 でソートするだけでいい。

 ほかにもいろいろな楽しいアプリを作るためのアイデアを盛り込む余裕は豊富にある。自分でアイデアを形にして行き、世のユーザをビックリさせたり、楽しませたりすることができるはずだ。今回の講座が少しでもその手助けになれば幸いである。

筆者紹介──澤橋辰典・武上将樹

 ケータイアプリ(iアプリ/EZアプリ/Vアプリ)のNo1ポータルサイト「アプリ★ゲット」を運営するスパイシーソフトに勤務。

 澤橋は学生時代、iアプリのコンテストでゲームアプリやツールアプリを制作し、入賞経験がある。また、所属していたサークルの後輩に、ものづくりの楽しさやアプリの奥義を授け、その後輩も入賞していることから、自らをiアプリエヴァンジェリスト(伝道者)と呼んでいる。現在も大手企業にOEM提供しているアプリの開発を行っている。

 武上は、イーアクセスとの共同事業「どこでも読メール」や、各社にOEM提供しているアプリメールサービスなどで、主にサーバサイドやデータベースまわりの開発を担当している。ゲームアプリは、もっぱらプレイ専門。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia Mobile に「いいね!」しよう