- 2009-05-14 (木) 10:17
- 未分類

こんにちは!
akahoshiです。
今日はオーナーID(ユーザーID)を利用するアプリを作成する際の注意点を書きたいと思います。
オーナーIDを利用するアプリとは?
ユーザーが入力したデータをそのユーザーのIDと紐付けるアプリのことです。
例えば、「マイミク市場」とかは自分が買ったマイミクの情報とか送ったギフトの履歴とかのデータをそのユーザーのID別に登録されていきます。ここで言うオーナーIDを利用したアプリになりますね。
インストールしなくてもアクセスできるcanvasページ
canvasページは実はアプリをインストールしなくても見ることができます。
例えばアプリのURLに
owner_id=123456789
というようなパラメータをつけるとそのIDの人としてアクセスできてしまいます。
なりすましができてしまう問題点
そうなるとオーナーIDを利用したアプリではなりすましができてしまいます。別の人になりすましてデータを追加したり、削除したりできてしまうのですね。
先日mixiに行った時にこのことも話したのですが実は仕様のようで、アプリをインストールしていなくても見れた方がいいんじゃない?という流れになっていたようです(今後変更されるかもしれませんが)。ちなみにMyspaceやFacebookはインストールしていないとアプリは見ることはできませんので「インストールしてください」というような表示がされアプリインストール画面に誘導されます。
こういう元で作っていたので今回の注意点に気がついた訳ですね。
OWNER_IDじゃなくてVIEWER_IDを使おう
上でも書いたように一応現在は仕様のようですので今後変わらないかもしれません。ですので、オーナーIDを利用したアプリを作成する場合はオーナーIDを取得する場合はVIEWER_IDを利用するといいかもしれません。
具体的にはこんな感じですかね。
function loadOwner() {
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest("VIEWER"), 'viewer');
req.send(onLoadOwner);
}
function onLoadOwner(data) {
var viewer = data.get('viewer').getData();
if(!viewer){
document.write('インストールしてね!');
}else{
var name = viewer.getDisplayName();
}
}
viewerのデータを取得する場合、そのアプリをインストールしていないとデータを取得できませんので今見ている人(viewer)がインストール済みか否か判別することができます。ということでviewerのデータがない場合は「インストールしてね!」みたいな感じでインストールを誘導すると親切かもしれませんね。
- Newer: mixiアプリのプロモーションについて
- Older: mixiアプリのことでmixi本社に行ってきたよ!

Comments:6
- えーじ 09-05-14 (木) 12:49
-
> 例えばアプリのURLにowner_id=123456789というようなパラメータをつけるとそのIDの人としてアクセスできてしまいます。
アクセスできるのは分かりますが、なりすましてデータを追加したり削除したりというのは、動作を確認されましたか?それとも想像?
できない作りになっているはずですが・・・
- akahoshi 09-05-14 (木) 12:56
-
できちゃいますねー
動作確認済ですー - えーじ 09-05-14 (木) 13:23
-
owner_idを付けるのはrun_appli.plのURLですか?それともiframe内のURLですか?
run_appli.pl(キャンバス)のURLに付けてみても、再現しませんでした。(アプリ登録ページにリダイレクトされます)
- akahoshi 09-05-14 (木) 19:11
-
ちょっと説明が足りなかったかもしれませんね。
ここでのデータ追加削除というのは外部サーバーに対して行うものです。
多分えーじさんがおっしゃってるデータ追加削除は
永続化データとかアクティビティのことですよね?そっちの方は大丈夫のようですね。
- えーじ 09-05-15 (金) 7:27
-
> ここでのデータ追加削除というのは外部サーバーに対して行うものです。
なるほど、だとしたら問題はmixiというよりもディベロッパー側にあるのでは?
解決策としては、署名リクエスト / Signed Requestを用いるのがよいです。
OpenSocialコンテナからの送信であることを保証できる上、owner_id / viewer_idとして正規のユーザーIDが送信されます。 - admin 09-05-15 (金) 7:44
-
>なるほど、だとしたら問題はmixiというよりもディベロッパー側にあるのでは?
元々そういうつもりで書いていたんですけどね。説明足らずでしたねーまあ、owner_idで上のようなことやっていた(る予定)人は気をつけてねってことです。
Trackbacks:0
- Trackback URL for this entry
- http://blog.soratobu.jp/2009/05/561/trackback/
- Listed below are links to weblogs that reference
- mixiアプリ オーナーIDを利用する際の注意点 from mixiアプリ開発日誌

