2010-10-31 6 views
7

Une fois que je reçois mon token d'accès pour un site (disons facebook) en utilisant OAuth, à quel point est-ce important de garder ce secret? Est-ce que quelque chose de malicieux pourrait arriver si quelqu'un s'en emparait?Quelle est l'importance de garder le jeton d'accès d'OAuth secret?

Je me demandais si ce serait une mauvaise idée d'enregistrer le jeton dans un cookie ou une session.

+0

Vous ne voudrez peut-être pas stocker dans un cookie, mais une session est OK. L'idée est que les cookies sont considérés comme des «entrées utilisateur» et ne sont pas fiables (à moins d'utiliser des cookies signés), ce qui signifie que vous devez interroger votre base de données utilisateur pour valider que le jeton d'accès est valide avant de l'utiliser. Cela est déjà fait pour les identifiants de session au niveau de la session dans la plupart des frameworks web. –

+2

Mis à part la validité, je suis plus préoccupé par la sécurité. Donc j'ai pris le access_token que j'ai eu de facebook et sur un autre ordinateur couru curl -F 'access_token = 162032318056 | 2.0r19NN8CJ3qiz2e0dA_G6w __. 3600.1288576800-6423201 | q7GD-dWTEvWoqEZjZ77Ga_ddhwA' -F 'message = TEST' https://graph.facebook.com/me/feed Cette commande a affiché TEST sur mon mur. Je m'inquiète donc qu'un utilisateur malveillant puisse lire des cookies de quelqu'un, récupérer le jeton d'accès qu'il a reçu d'un site, et ensuite pouvoir exécuter des commandes privilégiées sur un compte facebook. De ce test, il semble que ce soit possible. –

+0

Brad, avez-vous trouvé une solution? Mis à part la session ou un cookie, où d'autre le stockerait? L'enregistrer dans la base de données chaque fois que l'utilisateur se connecte et l'interroger semble une bonne idée au mieux ... – Alexandra

Répondre

4

Mise à jour: si l'utilisateur se connecte au javascript sdk, l'identifiant de l'utilisateur et les jetons d'accès sont déjà stockés dans des cookies pour votre site. Vérifiez les cookies http envoyés. Si ce n'est pas le cas, consultez la documentation FB.Init, car FB.Init a un paramètre booléen cookies que vous pouvez définir pour qu'il crée un cookie pour vous nommé fbs_ {APPID}. This post parle de ce cookie.

+0

Il semble qu'une fois que j'obtiens l'access_token, je n'ai pas besoin d'autres touches pour faire des choses privilégiées. plus je suppose. Merci! –

+0

Yuily tu as raison. J'ai mis à jour la réponse. – bkaid

2

Oui, le jeton d'accès est équivalent à votre nom d'utilisateur/mot de passe. La plupart des implémentations expireront le jeton d'accès après un certain temps mais tant qu'il est encore valide, il doit être gardé secret.

Questions connexes