facebookアプリを作るうえで、一度取得したアクセストークンてどこで持っておくのが一般的なんですか?

ユーザ側にクッキーなどで持たせたらセキュリティ的にまずいと思うのです。(クッキーのことあんまりわかってないんで突っ込みどころあったら突っ込んでください)
サーバ側で持っておいて、API叩くときにアプリ側でユーザに合わせて引っ張ってきてあげるというのが普通でしょうか?

回答の条件
  • URL必須
  • 1人5回まで
  • 13歳以上
  • 登録:2011/11/04 22:27:24
  • 終了:2011/11/11 22:30:03

ベストアンサー

id:tdoi No.1

tdoi回答回数174ベストアンサー獲得回数752011/11/05 21:27:51

ポイント50pt

セキュリティという観点に立つと、どのようなセキュリティリスクを考えるかが問題となります。残念ながら100%安全な方法といったものはありませんので。


ここでは、クッキーの情報が第3者に流れるというリスクについては考慮しないことにします。まずは、アクセストークンをクッキーに保存すると、そのアクセス―トークンをもとにそのユーザがなりすましをすることができるかがポイントとして回答します。

つまり、そのアクセストークンをちょっと改変すると、別のユーザとしてそのWebアプリケーションにログインできるかどうか?あるいは、そのアクセストークンで別のWebアプリケーションを利用することができるかどうか?のみに注目すると、OAuthのアクセストークンは、この観点からは特に問題がないと言っていいと思います。


では、全く問題ないかというと、例えばで、アクセストークンさえあれば、

https://graph.facebook.com/me?access_token=<アクセストークン>

という形だけでデータが取れてしまうので、アクセストークンが第3者に流れたことを考えると、リスクは残ります。

これを防ぐにはアクセストークンは一度もクライアント側へ渡さないことが大事になります。もし、yuma_nishizakiさんが作成しているWebアプリに独自の認証機構があるのであれば、そのアプリのユーザの情報としてアクセストークンを保存しておく方がいいでしょう。認証自体にFacebookを使っているのであれば、セッションIDなどをクッキーに保存しておいて、アクセストークンはサーバ側で管理しておけば、アクセストークンだけが流用される危険は防げるかと思います。


質問に則って回答させてもらえば、

「サーバ側で持っておいて、API叩くときにアプリ側でユーザに合わせて引っ張ってきてあげる」

方がよいと思います。

【参考】

http://developers.facebook.com/docs/authentication/

その他の回答(1件)

id:tdoi No.1

tdoi回答回数174ベストアンサー獲得回数752011/11/05 21:27:51ここでベストアンサー

ポイント50pt

セキュリティという観点に立つと、どのようなセキュリティリスクを考えるかが問題となります。残念ながら100%安全な方法といったものはありませんので。


ここでは、クッキーの情報が第3者に流れるというリスクについては考慮しないことにします。まずは、アクセストークンをクッキーに保存すると、そのアクセス―トークンをもとにそのユーザがなりすましをすることができるかがポイントとして回答します。

つまり、そのアクセストークンをちょっと改変すると、別のユーザとしてそのWebアプリケーションにログインできるかどうか?あるいは、そのアクセストークンで別のWebアプリケーションを利用することができるかどうか?のみに注目すると、OAuthのアクセストークンは、この観点からは特に問題がないと言っていいと思います。


では、全く問題ないかというと、例えばで、アクセストークンさえあれば、

https://graph.facebook.com/me?access_token=<アクセストークン>

という形だけでデータが取れてしまうので、アクセストークンが第3者に流れたことを考えると、リスクは残ります。

これを防ぐにはアクセストークンは一度もクライアント側へ渡さないことが大事になります。もし、yuma_nishizakiさんが作成しているWebアプリに独自の認証機構があるのであれば、そのアプリのユーザの情報としてアクセストークンを保存しておく方がいいでしょう。認証自体にFacebookを使っているのであれば、セッションIDなどをクッキーに保存しておいて、アクセストークンはサーバ側で管理しておけば、アクセストークンだけが流用される危険は防げるかと思います。


質問に則って回答させてもらえば、

「サーバ側で持っておいて、API叩くときにアプリ側でユーザに合わせて引っ張ってきてあげる」

方がよいと思います。

【参考】

http://developers.facebook.com/docs/authentication/

id:kodairabase No.2

kodairabase回答回数661ベストアンサー獲得回数802011/11/10 20:44:46

ポイント50pt

クッキーをセキュアにする~Session FixationとかSession Hijackとか~
http://d.hatena.ne.jp/zatsuso/20080209/

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません