CHARGER UN FICHIER DISTANT (SANS CROSSDOMAIN)

wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 - 11 févr. 2007 à 19:38
lhorn Messages postés 2 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 26 janvier 2012 - 26 janv. 2012 à 11:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41448-charger-un-fichier-distant-sans-crossdomain

lhorn Messages postés 2 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 26 janvier 2012
26 janv. 2012 à 11:50
bonjour,

j'ai un problème similaire mais je n'ai pas tout compris.

J'ai posté mes sources ici merci d'y jeter un oeil :

http://forums.mediabox.fr/topic/177868-probleme-dacces-fichiers-externes/
cs_antho76 Messages postés 17 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 10 juin 2008
23 mai 2007 à 18:50
no Pb envoie moi ton adresse mail et je te prepare sa
cs_antho76 Messages postés 17 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 10 juin 2008
23 mai 2007 à 18:49
no Pb envoie moi ton adresse mail et je te prepare sa
eliotek Messages postés 1 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 23 mai 2007
23 mai 2007 à 16:27
Salut antho76 j'ai cherché depuis longtemps un script flash pour mon webradio en ligne, je ne suis pas fort en php et action script mais seulement je suis webdesigner alors je me demande si tu peux m'envoyer un script que tu as pour ma webradio?

Merci beaucoup !
cs_antho76 Messages postés 17 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 10 juin 2008
9 mai 2007 à 22:32
salut MOBMAN02

alor oui j'ais trouver comment fair,

d'abord par ce que toi aussi tu a trouver, moi aussi je sais pas pourquoi sa marche ,
mais sa ressemble au flux video alor c'est peut etre pour sa.

mais en fait le pb du crossdomaine me vennais plus d'un pb du lecteur flash.

en fait sa marche tres bien avec le lecteur Flash 9 mais pas inferieur.

suffisais de mettre a jour le lecteur flash au auditeur ^^

si tu a besoin de plus de truc pour ton lecteur shoutcast fait le moi savoir j'ais cree un lecteur complet avec affichage des " titres , auditeur, artiste ... " le tous en live ( pas besoind de rafraichr la page )

donc esite pas a demandé je t'en ferras par

slts angelus76/ antho76
mobman02 Messages postés 47 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 6 mai 2007
6 mai 2007 à 19:28
Plop j'ai réussi à le faire fonctionner mon player shoutcast !!

System.security.allowDomain("http://hebor.zazimut.org/");
_root.s = new Sound();
_root.s.loadSound("http://serveurshoutcast.org:8000/;stream.nsv", true);

C'est le ;stream.nsv à la fin de l'url qui l'a fait fonctionner, me demandez pas comment :)
mobman02 Messages postés 47 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 6 mai 2007
6 mai 2007 à 19:09
ANTHO76 as tu trouvé une solution ? Je recherche aussi un moyen d'utiliser cette technique pour du stream audio (Shoutcast).
cs_antho76 Messages postés 17 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 10 juin 2008
28 mars 2007 à 10:00
Sa a l'air interessant mais peux ton l'utiliser pour le Striming ?

car en fait moi j'aurrais besoin de ce genre de systeme,
mais qui permet de charger un flux audio de webradio Shoutcast.

comment l'utilisé pour mon cas ?

merci d'avance
cs_x_mec Messages postés 63 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 19 février 2008
18 févr. 2007 à 15:26
Ouf, tu m'as fait douter pendant une demi seconde ^^


Ton code à toi permet de loader un swf depuis n'importe quel serveur ;)
scara 51 Messages postés 94 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 18 septembre 2007
18 févr. 2007 à 14:12
Ok j'ai fait des ti tests. Effectivement, il semble que le player ne puisse pas charger un domaine pour lequel il n'a pas de crossdomain.xml.

Donc mes excuses. Ce sript dans ce cas est nécessaire.
scara 51 Messages postés 94 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 18 septembre 2007
18 févr. 2007 à 14:04
?????? le but de ce script ??????
Moi pas comprendre !!

Perso ni php ni code de 300 ligne, juste une seule ligne :

System.security.allowDomain("*");

et ca fonctionne tt seul ...
Enfin j'ai dû louper une étape. Donc merci de m'expliquer le but de ce script. :S
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
15 févr. 2007 à 10:47
Pas de problème !!

mon alternative me sert pour un projet en particulier (1 xml qui est utilisé pour deux choses différentes, menu et sécurisation) mais effectivement, tu peux directement intégré les urls accessibles dans le fichier php avec un tableau par exemple...

Mais c'est sur que sur le principe, cela va aider pas mal de monde de pouvoir se libérer de la sécurisation du flash player

Girou
cs_x_mec Messages postés 63 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 19 février 2008
15 févr. 2007 à 09:00
Et m*rde !

Merci Girou pour l'idée ;)

Enfin cette source explique surtout le principe, mais je vais rajouter une solution pour securiser un peu le script. Ton idée est bonne mais je vais fournir une methode moins complexe et plus souple ;)


Encore merci à vous ;)
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
14 févr. 2007 à 09:59
Bonjour,

il est effectivement bien pratique que php n'ai pas les mêmes restrictions de sécurité que flash, cependant je me demande si ce genre de script ne risque pas de poser tout de même un problème...

Si quelqu'un repère ce fichier php sur votre serveur, il peut s'en servir comme passerelle pour aller chercher tout et n'importe quoi sur le net et le faire transiter par votre serveur, utiliser votre bande passante, ah la la mon bon monsieur, à l'heure actuelle faut se méfier de tout...

J'en suis pas sur mais cela me semble une grosse faille.

Ce que je fais dans ces cas là - mais est-ce la bonne solution ?? - je rajoute un fichier xml (au même endroit que le fichier php) contenant une liste d'url autorisées.
Et donc, avant de charger le fichier distant, je contrôle si il fait partie de ma liste de fichiers autorisés. Si il n'est pas dedans, on renvoi une erreur.

Voici donc ma proposition :
----------------------- fichier php -----------------
<?php
if( !isset( $_GET[ "maVariable" ] ) )
{
die( "Error" );
}
$URL = $_GET['maVariable'];
$URL = trim($feedURL);
// 1) on contrôle si la variable est dans les url autorisées via verifyLink($URL)
// 2) on charge le fichier si c'est OK
// 3) on contrôle si il est encodé en utf8 via isUTF8($theFile);
// J'utilise ceci surtout lorsque je charge des fichiers xml distants pas
// toujours encodés en UTF8
// 4) on renvoi le fichier proprement encodé à flash qui digère mieux l'UTF8
if(verifyLink($URL)) {
$theFile = file_get_contents($URL);
$isUTF8 = isUTF8($theFile);
if(!$isUTF8){
echo utf8_encode($theFile);
}else{
echo $theFile;
}

}
function verifyLink($requestedURL) {
$path = './authorized_url.xml';
$authorized = false;
$approvedList = file($path);
foreach($approvedList as $url) {
if(strstr ($url, $requestedURL)) {
$authorized = true;
break;
}
}
return $authorized;
}
function isUTF8($string)
{
return (utf8_encode(utf8_decode($string)) == $string);
}
?>

--------------------- fichier authorized_url.xml ---------------------------

<?xml version="1.0" ?>

http://www.domainA.com/path/file
http://www.domainB.com/path/file


P.S. l'utilité de ce fichier xml peut être double car si on l'étoffe un peu, il peut facilement servir a créer un menu dans l'animation flash pour pointer vers des fichiers externes... Rien ne se perd, rien ne se crée, tout se transforme comme disait quelqu'un :o)
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
13 févr. 2007 à 20:08
Pas grave, c'est normale, donc normalement ton code ressemblerai plutot a sa :




//Le fichier "secu_flash.php"
<?php

if( !isset( $_GET[ "maVariable" ] ) )
{
die( "Error" );
}

echo file_get_contents( $_GET[ "maVariable" ] );

?>
cs_x_mec Messages postés 63 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 19 février 2008
11 févr. 2007 à 19:57
Merci wizard512, je n'ai pas encore les bonnes pratique de php en tète. Effectivement c'est mieux de verifier que la variable soit bien "setée". Et le code sur une seule ligne c'est cool ^^

Et du coup tu m'a permis de voir une erreur effectivement sur le decode, j'suis parfois à la masse :$

Thanks
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
11 févr. 2007 à 19:38
Sa serait pas mieux comme sa..?

//Le fichier "secu_flash.php"

<?php

if( !isset( $_GET[ "maVariable" ] ) )
{
die( "Error" );
}

echo utf8_encode( utf8_decode( file_get_contents( $_GET[ "maVariable" ] ) ) );
?>


Et pourquoi decoder la chaine, si c'est pour ensuite la recoder...?
Rejoignez-nous