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

» 2004年12月08日 02時02分 公開
[澤橋辰典・武上将樹,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.

アクセストップ10

2026年04月13日 更新
  1. もうiPhoneユーザーの「エアドロで送るね」に苦しまない? Google Japanが「共有の扉を開くことが叶わず」などと“おわび”したワケ (2026年04月11日)
  2. 紛失した「AirPods Pro 3」片耳をAppleで購入したハナシ そしてまさかの結末に (2026年04月11日)
  3. 「Google Pixel 10a」レビュー:aシリーズらしい取捨選択のうまさが光る Pixel 9aとの差分をどう考えるかがカギ (2026年04月13日)
  4. 廉価モデル「Pixel 10a」「iPhone 17e」を比較 価格とスペックに“決定的な差”あり (2026年04月10日)
  5. ソフトバンクが「今回もやる」とGalaxy S26を月額1円で販売――販売方法を早急に見直さないと撤退を迫られるメーカーも (2026年03月08日)
  6. iモードとFOMAが2026年3月31日で終了――iモードの成功はNTTドコモに何を残したのか (2026年04月12日)
  7. ソフトバンク値上げの背景に「通信品質維持の限界点」 Y!mobileは収益重視で改定、LINEMOは据え置き (2026年04月10日)
  8. フェラーリデザインをスマホに! Infinixから美しすぎるスマホ登場 (2026年04月12日)
  9. あなたの街の「スマホ決済」キャンペーンまとめ【2026年4月版】〜PayPay、d払い、au PAY、楽天ペイ (2026年04月10日)
  10. 「ダイソン初のハンディファン」発表 “同社のエンジニアリング”を凝縮 USB Type-Cに対応 (2026年04月11日)
最新トピックスPR

過去記事カレンダー

2026年