Si vous avez des problèmes de sécurité, ils ne sont pas propres à ajax, mais il existe des moyens simples de rendre les choses plus difficiles à manipuler.
1) Comme le dit Diodeus - ne laissez absolument pas les gens utiliser vos services sans qu'ils soient authentifiés via une session. C'est la même chose que pour n'importe quelle autre page d'un site web qui nécessite que vous soyez connecté.
2) Rendre le détournement de session plus difficile en intégrant des informations sur le client dans la clé de session (cookie) et en les vérifiant sur le serveur, par exemple l'adresse IP, la version du navigateur. Ces informations peuvent toujours être usurpées, cependant.
3) Si une session particulière fait plus de x demandes dans une certaine période de temps (par exemple 10 en une minute), déconnectez-la et bannissez-la pendant une heure. Fixez une limite plus élevée pour les bannir jusqu'à ce qu'ils soient restaurés par un administrateur. Faites en sorte que le code vous envoie un e-mail à chaque fois que cela se produit afin que vous sachiez si vous avez un problème.
4) Si vous êtes vraiment inquiet, utilisez le SSL. C'est vraiment le seul moyen d'empêcher absolument le détournement de session (à part la mise en œuvre de votre propre mécanisme de cryptage à clé privée pour les données de session).
5) Si vous n'utilisez pas le protocole SSL, vous ne pouvez pas empêcher le détournement de session, mais vous pouvez protéger les mots de passe de vos utilisateurs contre l'espionnage. Lors de l'authentification, faites ceci :
- Le client script demande le sel au serveur (une chaîne aléatoire).
- Le serveur envoie le sel au client et le garde en mémoire avec la session.
- Le client hash le mot de passe en utilisant Sha-256 par exemple, avec le sel, et s'authentifie avec son nom d'utilisateur et son mot de passe haché. Le serveur hache le mot de passe associé à l'utilisateur de son côté en utilisant le même sel, et s'authentifie s'il correspond au hachage envoyé par le client. Le serveur oublie le sel qu'il a utilisé cette fois-ci.
De cette façon, une personne qui observe une session ne peut voir que le mot de passe haché et, comme le hachage est différent à chaque fois, elle ne peut pas se reconnecter en utilisant ce hachage contre votre service. Vous ne pouvez toujours pas les empêcher de détourner la session, mais vous pouvez les empêcher de voir les mots de passe de vos utilisateurs ou de se connecter par eux-mêmes.
En réalité, le détournement de session n'est pas si courant, bien que la mise en œuvre la plus connue soit, bien sûr, facebook via wifi. Si quelqu'un propose un plugin Firefox pour pirater votre réseau social, vous devriez être ravi car vous savez que vous avez réussi.