ユーザ側にクッキーなどで持たせたらセキュリティ的にまずいと思うのです。(クッキーのことあんまりわかってないんで突っ込みどころあったら突っ込んでください)
サーバ側で持っておいて、API叩くときにアプリ側でユーザに合わせて引っ張ってきてあげるというのが普通でしょうか?
セキュリティという観点に立つと、どのようなセキュリティリスクを考えるかが問題となります。残念ながら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/
セキュリティという観点に立つと、どのようなセキュリティリスクを考えるかが問題となります。残念ながら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/
コメント(0件)