Ajax!AJAX c’est super, tout le monde en veut pour son site Web 2.0.

Le problème c’est qu’on s’intéresse plus souvent au côté purement fonctionnel qu’à la performance… ou au côté sécurité…

En fait, à moins de mettre en place des contrôles, AJAX ne fait pas la différence entre une requête XMLHttpRequest faite via le script ou une requête bidon appelée par un script externe au site d’origine.

D’où une liste de points à vérifier lors de la conception de sites basés sur AJAX:

  • Méthode GET : à éviter! N’importe qui peut modifier une querystring et bonjour les problèmes classiques d’échappements de chaînes, de vérification syntaxiques, etc…
    Comme dans toute appli Web, faut être un peu parano: POST est votre ami 🙂
  • user-agent : est-ce bien IE ou Firefox qui se sert du script? Penser à restreindre l’accès par exemple. Encore une fois c’est une précaution de principe car certains scripts peuvent « spoofer » un user-agent.
  • referrer : une bonne idée serait de bloquer toute requête émanant d’un site différent de l’origine.
  • Cookies : miam!
  • Traffic web : vérifiez d’où viennent les requêtes pour identifier les mauvais plaisants et sécuriser votre AJAX!
  • Codez vos requêtes avec des identifiants uniques mais valides 🙂

Sur ce, bon dev!
Un très bon article de darknet.org résume la situation:

Darknet: Ajax – Is your application secure enough? English