2010-03-25 6 views
0

Les variables de session (dans ASP.NET) sont-elles le moyen le plus sûr de stocker des données relatives à la connexion d'un utilisateur ou non? c'est-à-dire Session["LoggedIn"] = 'No'ASP.NET et état de session/informations de connexion

Je sais que les variables de session peuvent être spoofées donc je suppose qu'il doit y avoir un moyen plus sûr.

Des idées pour ASP.NET?

Merci!

Répondre

2

Je ne l'ai jamais entendu parler de pouvoir d'usurper les variables de session dans ASP.Net (ou toute autre plate-forme que je suis au courant.)

Vous pouvez usurper les variables de formulaire, est que ce que vous pensez ?

1

Les variables de session doivent être sécurisées. Cookies d'autre part, non.

0

@ V-Man vous avez seulement quelques options étant que votre solution est sans état. L'un est des sessions, et aussi longtemps que vous ne créez pas un énorme système basé sur le Web qui n'est pas réparti sur plusieurs serveurs Web, les variables de session est votre meilleur pari. L'autre wya pour faire ceci est de cacher les résultats.

1

Les sessions sont sécurisées car elles s'exécutent sur le serveur. Par conséquent, les obtenir directement est assez difficile. Cependant, cela ne veut pas dire qu'ils sont parfaitement sécurisés (mais qu'est-ce que c'est?). Les pirates peuvent encore parodier d'autres personnes en détournant d'autres sessions. C'est ce qu'on appelle le piratage de session. Vous pouvez obtenir des informations sur la façon de réduire la probabilité de cela here

Ils sont l'un des moyens les plus sûrs de stocker des données, vous devriez donc les utiliser. Mais n'oubliez pas, si vous utilisez la méthode par défaut in-proc, les sessions seront stockées en mémoire. Si vous détenez trop de données, votre mémoire sera consommée rapidement. Pour les grandes quantités de données, envisagez de stocker des sessions dans une base de données ou un serveur dédié à une session externe.

0

Les sessions sont très bien à utiliser, mais gardez à l'esprit que si vous allez à plusieurs serveurs, il peut devenir et émettre.

Normalement, vous pouvez dire si quelqu'un est connecté juste en vérifiant les éléments suivants en supposant que votre aide de formulaires ou l'authentification Windows:

HttpContext.Current.User 

J'ai également stocké des informations étendues dans le Sessin pour l'utilisateur que je pourrais avoir besoin de l'accès souvent comme leur profil qui pourraient contenir des choses comme nom, e-mail, le niveau d'accès, etc ...