Une des craintes qui remonte régulièrement de la part des mes interlocuteurs clients sur les applicatifs AJAX concerne leur sécurité. En effet, l’idée reçue voudrait qu’en raison des traitements effectués principalement côté client, la sécurité s’en trouverait réduite. Nous allons voir ici qu’il n’en est rien, si les bonnes pratiques techniques sont respectées.
Client-serveur AJAX
Il est important d’ouvrir tout d’abord une parenthèse sur AJAX et son mode de fonctionnement.
Il s’agit d’un design de client-serveur web très classique reposant sur du HTTP. Le format d’échange passant via le tuyau tend vers les deux mêmes standards, JSON et XML.
Les différences concernent principalement :
- les requêtes HTTP elles mêmes, puisqu’elles sont effectuées de façon sous-jacente, par le biais des objets XmlHttpRequest,
- les traitements à la réception par le navigateur, puisque Javascript sert d’intermédiaire pour le rendu HTML, en lieu et place du moteur HTML du navigateur directement
Au final, les données transitent de la même façon que pour des pages classiques, seuls leur format et le traitement par le navigateur changent.
Actions à entreprendre
Côté serveur, il faut respecter scrupuleusement les bonnes pratiques de sécurité d’un applicatif classique :
- utilisation de HTTPS lorsque des données utilisateur sensibles transitent sur le canal client-serveur (informations administratives, numéro de sécu, login/mot de passe…)
- filtrer toutes les données entrantes, et encore plus lorsqu’elles proviennent d’une saisie utilisateur côté client.
- utilisation de sessions utilisateur pour s’assurer que le navigateur client a les permissions adéquates
Côté client, la subtilité supplémentaire est que le contenu n’est pas du HTML à rendre directement dans le navigateur. Ici encore, la cohérence des données entrantes est primordiale. Vous vous devez donc de contrôler proprement et d’assainir si nécessaire ce qui est renvoyé par le serveur, contre des attaques potentielles (injection de HTML fraudulueux par exemple).
Edit : un excellent article paru sur Ajaxian aujourd’hui traite concrètement des problèmes de sécurité sur les applicatifs Web. A lire absolument.
Commentaires récents