sept 24 2008

L’XMLHttpRequest Cross Site en cours de spécification : Présentation

Catégorie : ProgrammationSiM07 @ 16:50

Une des principales restrictions de ceux qu’on appel vulgairement AJAX, c’est qu’il ne permet que peu d’interaction entre différent site, entre différent domaine pour des questions de sécurité. Mon article ne vise pas à présenter l’XMLHttpRequest en tant que tel mais une évolution en cours qu’est l’XMLHttpRequest Cross Domain, c’est à dire une requête AJAX vers un domaine différent.

Explication :

Actuellement si je suis sur le site www.sim07.net  alors il m’est possible d’effectuer des requêtes AJAX que vers ce domaine pour des questions de sécurité. Pourtant moi, webmaster je sais très bien que www.sim07.net est très proche de simonrolland.fr, c’est en gros le même site et pourtant je ne peux effectuer directement mes requêtes.

La solution actuelle, le proxy

Actuellement on doit donc faire un mini proxy sur le domaine www.sim07.net pour effectuer la demande à simonrolland.fr. Shématiquement cela donne :

XMLHttpRequest Cross Site

Le code du proxy est on ne peut plus simple, en PHP :

<?php
$s = file_get_contents(”http://simonrolland.fr/ajax.php”);
echo $s;
?>

Le chemin en bleu est bien sur plus rapide et c’est ce que permet l’XMLHttpRequest XDomain mais cela pose un certain nombre de problème de sécurité.

Plus qu’un simple changement de domaine

 Mon exemple simplifie un peu les choses, on peut très bien imaginer que la requête se fasse vers le même nom de domaine mais sur un port différent. Exemple, mon site est codé en PHP et tourne sur un serveur Apache2, sur www.sim07.net et implicitement le port 80, j’héberge mon JavaScript sur le sous domaine static.sim07.net et mes traitements serveur AJAX sont fait via un servlet Java sur un serveur Apache Tomcat sur le port 8080. Problème ! impossible depuis le domaine www.sim07.net d’effectuer une requête vers www.sim07.net:8080. Idem si on avait voulu faire la requête sur un hypothétique ajax.sim07.net.

La solution du W3C : Header HTTP ou XML

 Le W3C à produit un brouillon de travail sur le sujet et suggère plusieurs solutions. Firefox 3 dans ses versions Beta implantait ce brouillon mais il n’est plus possible de faire marcher les différents proof of concept hormis pour des extensions. Dommage mais sécurité oblige. J’ai eu beau chercher je n’ai pas trouver d’article relatif à ce sujet pour Firefox 3.1, donc à priori pas de changement.

La solution du W3C est vraiment pas mal, l’idée est de faire la requête qui dans l’en-tête HTTP de la réponse indique si le site est accepté ou pas, si tous les sites sont accepté, tous sauf etc …

Il faut donc rajouter :

header(”Access-Control: allow <www.sim07.net>”)

Et le tour est joué, la requête est accepté. Perso je trouve que c’est la solution la plus simple. La solution XML est plus proche de la technique qu’utilise Flash à savoir un fichier crossdomain.xml à la racine du site.

Internet Explorer …

Chez Microsoft on discute du sujet mais il n’y a pas beaucoup plus d’information sur le sujet en tout cas cela ne ressemble que peu aux spécifications du W3C.

Pour aller plus loin :


avr 03 2007

J’ai installé l’AutoRoll de Criteo

Catégorie : Non classéSiM07 @ 18:17

Logo Widget CriteoJ’ai été contacté par email (durant mon footing (et oui le Geek fait du sport !)) par un “Chargé de Projet” chez Criteo, société qui semble pas à son coup d’essai vu son conseil d’administration. Je l’avais dit lorsque j’ai testé Wambo, lorsque l’on me contact je teste ! surtout si le produit semble sympatique.

Comme vous pouvez le constater l’AutoRoll est dans le panneau latéral gauche de mon blog et ce n’est en fait qu’un simple code JavaScript, rien à espérer des moteurs de recherche si vous pensiez que c’était un plus pour le référencement, c’est bien dommage mais il ne semble pas exister de version en PHP pour le moment. Finalement cet AutoRoll restera seulement là si il m’apporte des visiteurs.

Comme je viens de l’installer je ne sais absolument pas ce qu’il donne dans le temps ni sa pertinance en matière de résultat, il faudra voir dans quelques temps et si il ne m’apporte rien il sera enlevé.

Visiblement business

Criteo ne fait pas que ce widget et cela se voit en un immédiatement que ce n’est qu’un produit de plus. Je m’explique. On a direct l’impression d’arriver sur un site d’entreprise, même si il n’y a pas de pub cela saute aux yeux on a envie de vous vendre quelques choses et pas d’avoir un nouveau service sympa pour son blog. Regardez, vous ne trouvez pas ? ça sent le Microsoft à plein nez en exagérant un peu (d’aileurs suffit de voir l’en-tête http) pourtant rien n’est vendu et c’est bien un service gratuit qui est proposé c’est légèrement trompeur.

Simple à installer et à paramétrer

Venons en au widget en lui même, facile à mettre en place, un simple code javascript et une chose que j’ai vraiment apprécié quand on met à jour le widget dans l’administration il se change directement sur le blog sans avoir à changer le code, une grande simplicité. Il y a pas mal de paramètre réglable, la couleur bien sûr mais également la largeur, le nombre de lien, mettre des images ou pas, des liens dans une nouvelle fenêtre ou pas bref c’est pas mal. Au niveau des résultats j’ai déjà remarqué qu’il n’y avait que peu de roulement, c’est regrettable je trouve.
Finalement le widget de Criteo parait super marketing et surf sur une tendance, à jouer les super professionnels avec les bloggeurs je ne sait pas si cela peut vraiment fonctionner, à suivre.

EDIT : Je vous conseil fortement de lire les réponses de Pierre le Chargé de projet. 


jan 17 2007

Régression dans Outlook 2007

Catégorie : Non classéSiM07 @ 11:46

Vous aimez recevoir de jolie mail avec de jolie animation Flash ? En gros vous aimez les trucs biens propriétaires ! Et bien alors vous n’allez surement plus utilisez un logiciel d’email extrêment chère du nom de Outlook 2007 !

Logo d'internet Explorer 7

Alors que Thunderbird utilise le moteur de rendu Gecko pour afficher les emails en HTML, Gecko est le moteur de Firefox de SeaMonkey, de Flock … Outlook utilisait le moteur de rendu d’Internet Explorer, logique. Mais voila que dans la débilité la plus profonde que la société de consommation ai connu, Microsoft a fait le choix d’utiliser le moteur de rendu de Word pour les pages HTML ! Plus de CSS, plus de Flash, plus de Javascript, plus rien ! Grosse grosse régression donc !