LoadMovie et proxy php

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

Petite info que j'ai récupérée des liveDocs macromedia :

J'ai passé du temps à chercher une solution, et elle était bcp plus simple qu'il n'y paraissait :

le but, charger des swf via un proxy php... C'est à dire passer par une page php qui va me renvoyer mon swf avec les headers associés pour éviter la mise en cache. De plus, je dois pouvoir charger différents swf. Ce qui implique donc de pouvoir passer un paramètre à la méthode loadMovie.

J'ai testé avec un objet LoadVars pour être sur de mon php, mais rien n'y faisait, je n'arrivais pas à faire un loadMovie du type :

myMc.loadMovie( 'http://localhost/loadSWF.php?swf=test.swf', 'POST' );

En réalité, l'astuce est toute simple. On utilise le même processus qu'avec un objet LoadVars Smile

myMc.swf = 'test.swf';
myMc.loadMovie( 'http://localhost/loadSWF.php', 'POST' );

et via php, on récupère l'info dans le tableau $_POST, le plus simplement du monde.

Scié, sur ce coup-là. Je n'aurai pas pensé la manoeuvre autant simple. Mais il fallait la trouver.




Le pb de ce script c'est qu'il permet à quelqu'un de mal intentionné de télécharger ce qu'il veut sur ton serveur.

Portrait de titouille

Bonjour Philippe !
Tu as tout à fait raison, je n'avais pas vu cet aspect, étant donné que mon implémentation de cette méthode se trouve dans une application intranet, et muni de plusieurs sécurités (ip, remoting) avant de pouvoir exécuter ce genre de code. Mais c'est bien de le souligner.

Pour palier à ce genre de problème, on peut tout à fait tester si l'url du fichier à exécuter se trouve dans le même domaine que celui de la page qui exécute le script, ou encore filtrer pour ne laisser passer que les fichiers swf. Diverses méthodes pourront permettre assez rapidement de régler la situation que tu évoques Smile

salut titouille, comme d'hab j'arrive après la fête !
ben ça m'interesse bcp ton truc là, ça permet d'esquiver le cache du navigateur client donc ? serait-ce une solution contre les p'tits malins de la décompilation ? non, j'ai tout faux ???
en tout cas je suis preneur aussi du script php en question !

Portrait de titouille

Hello fred3d Wink

De toute façon, pour que l'animation soit lue, elle doit se trouver dans les dossiers temporaires, le temps de l'exécution, donc ce n'est pas une vraie sécurité. (Je ne sais d'ailleurs pas si on peut désactiver le cache, par exemple) Mais dans un cas ou tu as un contenu qui est sécurisé, ça peut être intéressant. Le fichier, dès qu'il n'est plus utilisé, est viré des répertoires temporaires. Donc c'est un peu comme une session. Si l'utilisateur ferme l'animation, alors le contenu est viré. Donc pour des contenus envoyés sur demande, ça peut être intéressant. Mais ça demande une certaine structure tout de même...

Pour le script php, c'est un simple fopen fread et un echo...

// open file and read it
// (can use file_get_content on php 4.3.0 and higher... more speed)
 = fopen (, "r");
 = fread (, filesize ());
fclose ();
// echo content
//
echo ;

A++

C’est un peu normal de ne pas pouvoir récupérer tes datas en POST vu que tu les passes dans l’url donc en GET.
Sinon il y a un post sur FF ou j’expliquais le fonctionnement de loadVars et loadMovie et loadTitouille Laughing out loud mais je ne me rappelle plus l’url …
A+ l'ami ...

Portrait de titouille

ben il me semblait qu'on devait spécifier dans la méthode le type d'envoi 'POST' ou 'GET'. Je n'avais par contre pas vu ton thread sur FF.