- 2009年10月20日 1:28 AM
- programming
mixiアプリが流行しているようです.
参考:mixiアプリ効果 PC版mixi、9月のPV・滞在時間が急拡大
この機会に,mixiアプリでも作ってみようかなという方も居るのではないでしょうか.
そこで,Webアプリの開発に慣れていない人がmixiアプリを開発するにあたって,見落としがちなポイントについて紹介します.
ソースコードは誰でも見ることができる.
mixiアプリのソースコードはJavaScriptです.JavaScriptは仕組み上,Webブラウザに読み込まれて,Webブラウザの上で動作します.ですので,誰でもがソースコードを読むことが可能だと思ってください.
ですので,ソースコードにパスワードを直接記述したり,自作の暗号アルゴリズムを実装したり等は避けたほうが無難です.また,mixiアプリでゲームを開発する場合,アルゴリズム等が流出してしまうと,その知識をもとに高得点を狙うユーザも出現するでしょう.
mixiアプリのソースコードは見られることを前提で,見られてまずい処理は自前でサーバを用意して処理する等が望ましいと思います.
ソースコードは誰でも書き換えることができる
mixiアプリは外部のサーバと通信を行うことが可能です.外部サーバにデータを渡して,何らかの処理を行い,外部サーバからデータを受け取るということで面白いアプリケーションを作ることも出来ると思います.
この類のアプリケーションを実装するときに注意しなければいけないことは,サーバ側のプログラムでは,mixiアプリ(つまりWebブラウザ)から受け取る情報を一切信用してはいけないということです.
詳しい手法を説明することはしませんが,クエリ文字列を含めて,mixiアプリからサーバに送信される情報は,自由に書きかえることができます.つまり,何らかの悪意のあるデータを含めることも可能であるということです.
mixi側に保存された情報は,誰でも簡単に読み取れる
mixiアプリでは,Key-Valueペアの文字列情報の永続化をサポートしています.これを利用することで,アプリに関する情報をmixiサーバに保存しておくことができるため,開発者側の歳ービス提供への負担を減らすことができます.
が,注意しなければいけないことは,この情報にアクセス権は存在しないということです.
mixiアプリのソースコードは誰でも書き換えが可能であるということを述べましたが,誰でもソースコードの書き換えが可能であるということは,誰でもが,mixi側に保存されている任意の人の情報を読み出すことができるということになります.(書き込みに関しては自分の情報に対してしか許可されていません)
ですので,マイミクだけへの公開,全体への公開という公開範囲をmixiアプリ側で設定しても,少し知識がある人がソースコードを書き換えれば,情報を読み出すことが可能です.ですので,mixi側に保存する情報に関しては万全の注意が必要です.
おわりに
以上,Webアプリ開発経験のある方からすれば基本的なことかもしれませんが,これまでWebアプリ開発の経験がないけどmixiアプリに挑戦してみようという方が陥りやすそうなポイントを3つほど書いてみました.実際には,気をつけなければいけないポイントは他にも色々ありあます.
もし,興味がある方は,それ用の本を購入するなどして,読んで頂ければ良いんじゃないかと思います.そして,多くの方がセキュリティに配慮した上で,面白いアプリを開発してくださることを期待しています.
コメント:4
- え 2009年10月20日
Mixiじゃなくてmixiですよね
- kur 2009年10月20日
確かにそのとおりでした!
- nitoyon 2009年10月28日
> サーバ側のプログラムでは,mixiアプリ(つまりWebブラウザ)から受け取る情報を
> 一切信用してはいけないということです.「一切」は言いすぎだと思います。
gadgets.io.makeRequest を SIGNED にすれば、viewer や app_id は Container によって署名されるので信頼できるようになります。- kur 2009年10月28日
「一切」は言いすぎかもしれませんが,それによって信頼できる情報は,「そのリクエストがmixiアプリから送信されたものである」「途中で改竄されていない」ということのみだと思います.
送られてきた情報の中身については検証が必要です.
トラックバック:3
- この記事のトラックバック URL
- http://kur.jp/2009/10/20/mixiappsec/trackback/
- トラックバックの送信元リスト
- mixiアプリ開発の落とし穴 - kur.jp より
- pingback - mixiアプリを作ろう!for WEB屋 » リンク より 2010年2月2日
[...] kur.jp mixiアプリ開発の落とし穴 mixiアプリ開発にあたって、 ・ソースコードは誰でも見ることができる. ・ソースコードは誰でも書き換えることができる ・mixi側に保存された情報は, [...]
- pingback - forWEB屋 » リンク より 2010年3月4日
[...] kur.jp mixiアプリ開発の落とし穴 mixiアプリ開発にあたって、 ・ソースコードは誰でも見ることができる. ・ソースコードは誰でも書き換えることができる ・mixi側に保存された情報は, [...]
- pingback - リンク « for WEB屋 より 2010年3月29日
[...] kur.jp mixiアプリ開発の落とし穴 mixiアプリ開発にあたって、 ・ソースコードは誰でも見ることができる. ・ソースコードは誰でも書き換えることができる ・mixi側に保存された情報は, [...]