第8回 90xiアプリのこれから:90Xi専用ゲームiアプリ開発講座(2/2 ページ)
最終回は、このアプリをより高度に改良する可能性を探る。赤外線通信への対応やセキュリティの向上、ネット上でのランキングの実装などを解説する。
セキュリティ
携帯端末内で実行されているアプリであれば、基本的には開発者の意図に反した使い方により、開発者がなんらかの損害を負うということは考えられない。しかし、インターネット上に公開され、運用されているシステムにおい
ては、話が大きく違ってくる。
iアプリと連動するWebシステムに関していうならば、まず2つのことに気をつなくてはいけない。1つは、システムにアクセスしてきた「何か」が、自分が開発したiアプリでないかもしれないということだ。
今回開発したWebシステムではarena.phpというゲートウェイにHTTP通信を行うが、何も対策をしないと、PCからのアクセスで簡単に勝率をいじられてしまう危険がある。これは認証をかけて回避してもよいが、一番簡単な防衛策は、Apacheを設定して、arena.phpの置かれたディレクトリ以下のアクセスをドコモのサーバを経由してきたもの(すなわちiモード、あるいはiアプリ)のみに制限してしまうのがよい。
Apacheのhttpd.confを編集してもよいが、これを編集するには通常サーバ管理者並みの高い権限が必要になるので、今回はhttpd.confと同等の設定をディレクトリ単位で行うことのできる、“.htaccess”を使ったやり方で行う。
具体的には、.htaccessというテキストファイルを作って、
と追加し、保存して規制したいディレクトリにおくだけでよい。ドコモのIPアドレス以外からのアクセスをシャットアウトしてくれる。
これで、携帯端末以外からの意図しないアクセスを除くことができるが、これだけでは、まだ不十分だ。
次に気を付けるべきなのは、「SQLインジェクション」と呼ばれる攻撃だ。これは、FORM入力時に不正なSQL文を混入させることで、不正にデータを閲覧したり、すべてのデータを削除したりされてしまうというものである。
今回は上手く注入できそうな箇所が、“運よく”見つからなかったが、仮にユーザ名で検索して成績を表示させる機能を追加したとして、内部で実行されるSQl文が
であった場合、
という、入力が行われると、
という文が実行され、データがすべて削除されてしまう。これを防ぐためには入力値の文字数や型などをきちんとチェックすることや、クオーテーションマークやセミコロンといった危険な文字を、プログラムでエスケープしておく必要がある。
これからの展望
最後に、本連載で解説したゲームアプリで使える手法のおさらいと、よりよいゲームアプリにしていくためのアイデアを紹介する。
本連載で解説したこと
- 90xiアプリを作成する背景
- 文字、図形描画
- イメージ描画
- キーイベント処理
- シーン別処理とその設計
- 乱数処理
- 写真撮影と画像解析
- スクラッチパッドへのアクセス(データ読み書き)
- ネットワークから画像取得、保存
- 画像の部分描画
- サーバ環境構築
- データベースのテーブル構築
- ダウンロード時のユーザ管理(端末ID取得)
- DBへのアクセス
- ネットバトル時のセッション管理
- スクリプトとアプリ間でのデータのやりとり
- セキュリティ
- 赤外線通信
よりゲームを面白くしてゆくためには、多くのユーザが、何度も遊んでくれるような機能を付加しなくてはならない。今回は「アプリ★ゲット編集部」として、人気のあるアプリがどのような機能を実装しているかを分析して紹介する。
最近の人気アプリは必ずといっていいほどネットランキングを実装している。今回のアプリで実装するならば話は簡単である。勝利数ランキングを表示したいならば、勝利数をDBからSELECTする際に、
でソートするだけでいい。
ほかにもいろいろな楽しいアプリを作るためのアイデアを盛り込む余裕は豊富にある。自分でアイデアを形にして行き、世のユーザをビックリさせたり、楽しませたりすることができるはずだ。今回の講座が少しでもその手助けになれば幸いである。
筆者紹介──澤橋辰典・武上将樹
ケータイアプリ(iアプリ/EZアプリ/Vアプリ)のNo1ポータルサイト「アプリ★ゲット」を運営するスパイシーソフトに勤務。
澤橋は学生時代、iアプリのコンテストでゲームアプリやツールアプリを制作し、入賞経験がある。また、所属していたサークルの後輩に、ものづくりの楽しさやアプリの奥義を授け、その後輩も入賞していることから、自らをiアプリエヴァンジェリスト(伝道者)と呼んでいる。現在も大手企業にOEM提供しているアプリの開発を行っている。
武上は、イーアクセスとの共同事業「どこでも読メール」や、各社にOEM提供しているアプリメールサービスなどで、主にサーバサイドやデータベースまわりの開発を担当している。ゲームアプリは、もっぱらプレイ専門。
関連記事
- 連載バックナンバー
- 第1回 90xiの時代に何を作るか
ドコモのFOMA 900iシリーズが普及し始め、パケット定額制サービス「パケ・ホーダイ」も人気を博している。こうした新たな時代のiアプリ開発とはどんなものなのだろうか。 - 第2回 カードゲームをつくってみよう
900i専用の、トレーディングカードゲームを開発してみる。まずはカーソルを動かしてカードを選択するところまで作ってみよう。 - 第3回 簡単なゲーム作成の流れを身に付ける
900i専用のトレーディングカードゲームを開発するため、今回はシーン別処理とランダムな値の取得について学んでいく - 第4回 カメラ機能を使ってカードを作ろう
900i専用のトレーディングカードゲームを開発するため、今回は900iのカメラ機能と画像処理機能を利用してゲームの主役であるカードを生成する方法を紹介する。 - 第5回 スクラッチパッドへのデータ保存とダウンロードファイルの処理
900i専用のトレーディングカードゲームを開発するため、今回は携帯のスクラッチパッドを利用したデータの保存と、効果的なデータのダウンロード方法を紹介する。 - 第6回 ネットワークiアプリのためのサーバサイド活用(1)
ここまで900i専用のトレーディングカードゲームを開発してきたが、今度はこれをネットワーク対戦に対応させる方法を学んでいく。 - 第7回 ネットワークiアプリのためのサーバサイド活用(2)
今回も引き続き、第5回までに作成した900i専用のトレーディングカードゲームを、ネットワーク対戦に対応させるために、アプリとサーバの間のインタフェースの設計および、実装を行う。 - ドコモ四国、第3回iアプリコンテストを開催
ドコモ四国は今年で3回目となるiアプリコンテストを開催する。iアプリ部門、Flash部門、四国学生部門の3部門を設け、大賞には賞金30万円などが授与される。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.