携帯端末内で実行されているアプリであれば、基本的には開発者の意図に反した使い方により、開発者がなんらかの損害を負うということは考えられない。しかし、インターネット上に公開され、運用されているシステムにおい
ては、話が大きく違ってくる。
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文が
|
であった場合、
|
という、入力が行われると、
|
という文が実行され、データがすべて削除されてしまう。これを防ぐためには入力値の文字数や型などをきちんとチェックすることや、クオーテーションマークやセミコロンといった危険な文字を、プログラムでエスケープしておく必要がある。
最後に、本連載で解説したゲームアプリで使える手法のおさらいと、よりよいゲームアプリにしていくためのアイデアを紹介する。
本連載で解説したこと
よりゲームを面白くしてゆくためには、多くのユーザが、何度も遊んでくれるような機能を付加しなくてはならない。今回は「アプリ★ゲット編集部」として、人気のあるアプリがどのような機能を実装しているかを分析して紹介する。
最近の人気アプリは必ずといっていいほどネットランキングを実装している。今回のアプリで実装するならば話は簡単である。勝利数ランキングを表示したいならば、勝利数をDBからSELECTする際に、
|
でソートするだけでいい。
ほかにもいろいろな楽しいアプリを作るためのアイデアを盛り込む余裕は豊富にある。自分でアイデアを形にして行き、世のユーザをビックリさせたり、楽しませたりすることができるはずだ。今回の講座が少しでもその手助けになれば幸いである。
|
Copyright © ITmedia, Inc. All Rights Reserved.