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:
Salut,
Dans la sécurité tu parle du referrer, sur FireFox impossible de le réuprer.
Tu as une idée
document.referrer devrait faire l’affaire, même sous Firefox
slt,
vous pourriez expliquer mieux la method referrer svp
En gros si le referrer du site n’est pas dans une liste approuvée, on ne déclenche pas l’appel AJAX.
var _dr = document.referrer;
var _re = /(monsite|autresite)/gi; // on rentre la liste des domaines autorisés
if(_dr.match(_re)){
// le referrer correspond à la liste
// on fait des trucs avec AJAX
}
Merciii j’ai copris