2009-09-22 7 views
0

Je suis à la recherche de la meilleure pratique pour transmettre des données sécurisées du côté client au serveur. Par exemple, j'ai une authentification côté client et parfois j'ai besoin d'appeler des apis privés du coté serveur, mais je dois m'assurer que l'utilisateur est authentifié/autorisé pour effectuer ces appels côté serveur , et maintenant seul le navigateur sait si l'utilisateur est authentifié.Connexion côté client Javascript, comment authentifier le côté serveur?

Merci!

+0

Quelle plate-forme et quel langage de programmation? Cette information serait plus utile que les balises côté serveur et côté client dans votre question. –

+0

"à l'heure actuelle, seul le navigateur sait si l'utilisateur est authentifié" - Je devine le navigateur. –

Répondre

3

Utilisez-vous SSL? Si tel est le cas, vous pouvez transmettre une sorte d'identifiant (ou mot de passe) d'utilisateur secret au serveur. Le serveur peut effectuer une vérification pour voir que tout va bien et vous permettre d'exécuter vos appels sur le serveur privé apis.

SSL est une couche de sockets sécurisée qui effectue un cryptage de bout en bout à l'aide de RSA. Le cryptage de bout en bout garantit que toutes les données envoyées sont cryptées afin que vous n'ayez pas à vous soucier d'envoyer un mot de passe via SSL comme vous le feriez si vous ne l'utilisiez pas.

0

Si votre authentification est effectuée par javascript sans aller sur le serveur, vous vous trompez. Tout code de navigateur peut être altéré facilement. Vous ne pouvez pas faire confiance au code exécuté dans le navigateur. La meilleure pratique consiste à envoyer l'authentification au serveur et à s'y authentifier. Basé sur cela, vous pouvez faire des choses comme utiliser un jeton pour vérifier contre le serveur, ou même simplement envoyer les informations d'identification à chaque fois.

Si vous êtes préoccupé par la sécurité lors de l'envoi au serveur, utilisez SSL.

0
  1. SSL
  2. Utilisez le côté client sertificate
  3. Utiliser jeton de sécurité unique pour chaque connexion avec le client (sauf jeton de sécurité sur la session côté serveur et comparer avec la valeur stockée côté client)
0
  1. SSL.
  2. Il existe un lot de solutions autour de qui pourrait convenir à vos besoins, y compris: OAuth, OAuth2, openID et dérivés. Cependant, si vous stockez des mots de passe utilisateur sur le côté client, vous vous inquiétez beaucoup plus que "le serveur ne sait pas" - de sorte que le client a tous les outils pour forger son authentification.
  3. La sécurité par l'obscurité est un mauvais mantra.