2010-02-11 17 views
2

J'étais thinking about this et il semble POST seulement un peu moins vulnérable et un peu plus difficile (faire pour obliger l'utilisateur à cliquer sur quelque chose).Utiliser GET avec un tokenID pour la sécurité est-il une bonne idée?

Je lis ids à propos de jeton et les cookies doubles soumis et je ne suis pas sûr de ce que la différence est

http://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet#Disclosure_of_Token_in_URL http://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet#Double_Submit_Cookies

En ce moment, j'ai l'ID utilisateur (PK dans ma table) et un identifiant de session donc vous ne pouvez pas simplement changer votre ID de cookie et agir comme quelqu'un d'autre. Maintenant, il semble que je mets l'identifiant de session en tant que jeton dans chacun de mes formulaires et que je vérifie que les attaquants ne peuvent pas deviner ces jetons. Cependant, je n'aime pas l'idée de mettre l'identifiant de session dans la page pour ppl à voir. Mais vraiment, y a-t-il un problème avec ça? À moins d'avoir l'utilisateur copier/coller le code HTML est-il des attaques qui peuvent se produire en raison de l'identification de la session étant en vue en html?

Répondre

1

Si l'utilisateur peut copier un lien avec un jeton, cela n'est pas très sûr. De même pour l'adresse actuelle: si vous utilisez un identifiant de session statique, une référence à un site extérieur ou une capture d'écran rendra la session compromise. Même si vous n'avez pas d'identifiant de session statique, l'utilisateur peut placer sa souris sur un lien et il apparaîtra dans le bas de son navigateur, puis prendre une capture d'écran, ce qui rendra sa session compromise.

+0

Vous avez un point avec la capture d'écran mais je supposais 1) L'utilisateur ne remettrait pas la clé 2) Il n'est pas en vue avec un lien. (Valeur cachée dans le formulaire). Puisque je dois avoir le jeton dans le formulaire (dans le but de double soumis des cookies) theres aucun moyen de le cacher si elle doit faire partie du code HTML. En ce moment, dans ma mise en œuvre, je n'ai pas fait voir avec un lien. –

+0

Je vais vous donner un +1 bc Je n'ai jamais pensé à un logiciel de capture vidéo ou à des captures d'écran (mais j'imagine que si un bouchon vidéo est installé, un keylogger peut l'être aussi). Je vais réviser mon code pour utiliser une session et un jeton de formulaire séparé –

+0

Je pensais plus que l'utilisateur serait convaincu de prendre une capture d'écran ou quelqu'un regardant par-dessus son épaule pourrait saisir l'identifiant de session si c'est dans l'URL. –

0

L'ID de session est quand même connu du côté client. Sinon, comment l'enverraient-ils avec les demandes?