2010-01-29 6 views
1

Je veux vérifier l'utilisateur s'ils ont ou non une connexion, donc j'attribue un champ caché de stocker la clé de session, et j'ai un formulaire de post-méthode à soumettre.Sécurité à propos de caché de champ

Est-ce que d'autres/hackers peuvent copier ma clé de session de mon champ et envoyer une méthode de publication au serveur? Si oui, comment puis-je faire pour éviter cela?

+0

Je dois admettre que je ne suis pas sûr de la réponse, mais cela ne semble pas être une bonne idée. –

+1

Pouvez-vous spécifier la technologie que vous utilisez? (ASP.NET, PHP, etc.) La plupart d'entre eux ont une façon de lire ce qui est stocké dans la session côté serveur sans que la clé apparaisse sur la page html. –

Répondre

0

Oui, la copie et la réexpédition de la clé depuis un autre emplacement peuvent être facilement effectuées.

L'astuce consiste à s'assurer que la clé de session n'est valide que pour une durée limitée et ne peut pas être facilement déduite des autres données du formulaire.

Vous pouvez par ex. utilisez une bonne méthode de cryptage pour encoder le nom d'utilisateur, l'adresse IP et l'heure dans une clé de session. Cette clé serait le décodage vous permettra de vérifier l'utilisateur, le système et le temps .. ne trompera pas tout à fait la preuve encore ...

Cela limitera mais pas éliminer le risque

1

Est-ce que d'autres/hackers peuvent copier ma clé de session de mon champ et envoyer une méthode de publication au serveur?

Oui.

Si vous souhaitez réduire le risque de fuite des informations d'identification, utilisez le chiffrement (SSL (HTTPS)).

+0

qui ne le protégera pas de quelqu'un ayant accès à la machine locale. Mais c'est la première étape évidente à prendre, je suis d'accord, donc +1 – lexu

+0

Si quelqu'un a accès à la machine locale, alors il n'y a pas de sécurité du tout. – Quentin

0

Vous devez utiliser une langue Serverside pour vérifier la clé de session . Ce sera beaucoup plus sûr.

Il y a quelques problèmes avec l'avoir comme valeur cachée. 1) L'utilisateur pourrait enregistrer le formulaire, puis changer la valeur et essayer de détourner une autre session 2) Vous pourriez avoir un homme dans la situation du milieu où quelqu'un écoute le formulaire à soumettre puis détourne la session ...

+0

Personne ne suggère d'utiliser autre chose qu'un langage côté serveur pour vérifier la clé. (1) Les utilisateurs peuvent ** toujours ** essayer de deviner une autre clé de session, peu importe où vous la stockez. (2) Oui, mais où la clé est stockée n'a pas d'importance pour cela, seulement comment elle est transmise. – Quentin

0

Vous pouvez utiliser les hachages et les horodatages dont il est question here, mais la plupart des frameworks de développement Web fournissent des mécanismes d'authentification intégrés.