AJAX et sécurité

Javascript/AJAX Aucun commentaire »

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.

Rediriger la console de Yahoo dans Firebug

Javascript/AJAX Aucun commentaire »

Vous en avez marre de l’horrible console de Yahoo qui fait ramer la page en mode Debug ? Voici un petit bout de code qui redirige la fonction YAHOO.log() dans la console de Firebug.
Lire la suite »

YUI : Indicateur de chargement

Javascript/AJAX Aucun commentaire »

Suite à la publication d’un billet de Mathieu Collet sur Ergonomic Garden, voici une implémentation avec Yahoo! UI d’un indicateur de chargement.

Dans cet article, je vous présente le code d’un widget YUI fait par mes soins, permettant de créer ce petit indicateur et le relie à un élement de la page.

Lire la suite »

IE7 disponible pour tous

Autres, HTML/CSS Aucun commentaire »

Une petite information passée jeudi dernier sur le blog des développeurs d’Internet Explorer : IE7 est librement téléchargeable et ne nécessite plus Windows Genuine Advantage pour l’installer.

Ceci est justifié par les bons retours sur la sécurité du navigateur depuis son lancement, et par le fait que 20% des PC sous Windows sont des versions pirates, qui ne bénéficiaient pas de cette mise à jour.

Si vous n’êtes pas encore passé sous IE7 pour rester compatible avec les version précédentes, sachez que vous avez deux possibilités :

  • utiliser les images Virtual PC fournies par Microsoft, avec au choix IE6 ou IE7 embarqué
  • installer l’excellent Multiple IE qui permet de faire cohabiter les différentes versions d’IE

YUI : envoyer un formulaire par la méthode classique

Javascript/AJAX Aucun commentaire »

Voici un petit morceau de code développé par mes soins pour traiter le cas d’un envoi de données “à l’ancienne”, c’est-à-dire via un formulaire posté par HTTP avec rechargement de page, avec la librairie Yahoo!UI.

Lire la suite »

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in