Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

php flv

5 réponses
Avatar
capharnaeum
Bonjour je m'adresse ici a tout hasard.
J'utilise la technique connue pour protéger les photos du readfile je
m'explique :

HTML :
<img src="photoController.php?photo=photo1.jpg"> ainsi

photoController.php
readfile("/repertoire/non/public/".$_GET["photo"]);

Mon problème est avec un player flv pour qui je fais exactement la
même chose, lorsque je clique sur play la vidéo se joue nickel mais
une fois la vidéo lancée, je ne peux plus changer de page si je clique
sur un bouton de la page, c'est comme si il devait finir de la lire,
après l'avoir chargée entièrement, là il execute la commande de
changement de page.

j'ai essayé d'isoler le problème et voici ce que je trouve :

- au lieu d'utiliser cette technique je mets la vidéo dans un
repertoire public et je mets en parametre le chemin exact et là ca
marche, si je clique sur un bouton pour quitter la page cela
fonctionne.
- je garde l'ancienne technique et je fais un remove de l'objet flash
avec son id, l'object est supprimé de l'arbre dom mais le problème
periste, le browser (firefox et ie) ne repondent pas tout de suite au
clique.

quelqu'un a une idée, ou à réalisé une code similaire et pourrait me
donner des conseils, voilà le but étant de protéger l'accès au vidéos
flv

encore merci

5 réponses

Avatar
John GALLET
Bonjour,

J'utilise la technique connue pour protéger les photos du readfile je
m'explique :
HTML :
<img src="photoController.php?photo=photo1.jpg"> ainsi

photoController.php
readfile("/repertoire/non/public/".$_GET["photo"]);


Cette technique n'a qu'un seul intérêt: si le fichier a été uploadé par un
attaquant via une interface d'upload, on l'empêche de l'appeler
directement par http donc on empêche l'exécution, côté serveur, de contenu
potentiellement dangereux pour le serveur. Elle peut aussi être utile dans
le même cas si les serveurs sont en DMZ et qu'on n'a donc pas le droit
d'écrire sur les machines où tourne PHP. Pour ce que tu veux faire, elle
ne sert fichtrement à rien. Il te suffira de recopier directement
http://tondomain.invalid.tld/.../photoController.php?photo=photo1.jpg dans
un navigateur et de faire un "fichier, enregistrer sous" pour t'en
convaincre.

Par ailleurs, je ne vois pas instantanément de faille exploitable
utilement avec le code ci-dessus, mais par principe, je ne mettrais pas
directement les données reçues du monde extérieur dans l'appel à la
fonction readfile(). Il pourrait bien y avoir moyen (aujourd'hui ou
demain) de lui faire lire un fichier distant qui ne se trouvera pas sur
ton serveur et l'envoyer au client/navigateur (au hasard en injection un
caractère 00 ou autre saloperie). Par principe de base, TOUT ce qui
vient du monde extérieur DOIT être filtré ("input sanitazing" comme qu'on
dit). Ici, il faut autoriser seulement les caractères alphanumériques
ainsi que - et _ UNE SEULE fois le caractère . dans le nom du fichier par
exemple (et surtout pas / par exemple). Tu peux même vérifier une liste
d'extensions explicitement autorisées.

donner des conseils, voilà le but étant de protéger l'accès au vidéos
flv


Soyons clairs: à partir du moment où mon navigateur est capable de
récupérer le fichier, d'autres programmes aussi. Au hasard wget pour les
habitués de la ligne de commande shell ou Miro (http://www.getmiro.com/)
pour les excités du clickodrome. Et je suis étonné qu'il n'y ait pas déjà
des myriades de "toolbars" que l'on peut ajouter à IE ou autres Firefox
pour sauvegarder directement les contenus depuis le cache du navigateur
(peut-être qu'il y en a, je n'ai pas vérifié en profondeur). Ce n'est
qu'une question de temps que le "vilain cracker" voudra passer pour
récupérer tes fichiers. Dis toi bien que pour DailyMotion ou YouTube, ça
prend environ 10 secondes de trouver le bon lien à copier coller (HINT:
chercher "embed" dans le code source. Aïe, ça y est, je donne dans le
Full Disclosure maintenant...). Ceci est valable pour l'intégralité d'un
contenu de webapp.

a++;
JG

Avatar
capharnaeum
Salut

voilà en fait comme j'utilise un framework, j'ai une fonction
preDispatch() avant de renvoyer la photo, je vérifie si la personne
est bien logger, voici le code de mon PhotoserviceController.php :
<?

require_once("Zend/Auth.php");
require_once("Zend/Controller/Action.php");

class Partner_PhotoserviceController extends Zend_Controller_Action
{


public function preDispatch()
{
$auth = Zend_Auth::getInstance();
if(! $auth->hasIdentity())
$this->_redirect("/path/to/login");
}

public function indexAction()
{

$this->_helper->viewRenderer->setNoRender();
header("Content-type: image/jpeg");
readfile("/chemin/vers/la/".$_GET["photo"]);

}


}

?>

du coup ça me protège de ceux qui tapent juste l'url, du coup dans le
preDispatch() je fais les vérifications que je veux.

mon problème est sur le lecteur flv qui monopolise le browser tant
qu'il n'a pas chargé toute la vidéo.
Avatar
John GALLET
du coup ça me protège de ceux qui tapent juste l'url,
Non: uniquement pour ceux qui ne sont pas loggués.


preDispatch() je fais les vérifications que je veux.
... et qui ne servent à rien pour empêcher de sauvegarder le flux dès lors

qu'on peut le voir.

Avatar
k-
On Nov 3, 1:23 pm, capharnaeum wrote:
Bonjour je m'adresse ici a tout hasard.
J'utilise la technique connue pour protéger les photos du readfile je
m'explique :

HTML :
<img src="photoController.php?photo=photo1.jpg"> ainsi

photoController.php
readfile("/repertoire/non/public/".$_GET["photo"]);

Mon problème est avec un player flv pour qui je fais exactement la
même chose, lorsque je clique sur play la vidéo se joue nickel mais
une fois la vidéo lancée, je ne peux plus changer de page si je clique
sur un bouton de la page, c'est comme si il devait finir de la lire,
après l'avoir chargée entièrement, là il execute la commande de
changement de page.

j'ai essayé d'isoler le problème et voici ce que je trouve :

- au lieu d'utiliser cette technique je mets la vidéo dans un
repertoire public et je mets en parametre le chemin exact et là ca
marche, si je clique sur un bouton pour quitter la page cela
fonctionne.
- je garde l'ancienne technique et je fais un remove de l'objet flash
avec son id, l'object est supprimé de l'arbre dom mais le problème
periste, le browser (firefox et ie) ne repondent pas tout de suite au
clique.

quelqu'un a une idée, ou à réalisé une code similaire et pourrait me
donner des conseils, voilà le but étant de protéger l'accès au vidéos
flv

encore merci


Salut,

Je suis tomber par hazard, en cherchant des info sur php et le
streaming...

Pour ton problème, je ne vois vraiment pas pourquoi, ça bloque mais
une question, pourquoi tu ne changes pas simplement les droits sur ce
dossier?

Sinon, je suis tomber sur ça http://philflash.inway.fr/phpflvplayer/index.html
je crois que ça va tintéressé

Bye,
^_^

Avatar
CrazyCat
k- wrote:
Je suis tomber par hazard, en cherchant des info sur php et le
streaming...
Sinon, je suis tomber sur ça http://philflash.inway.fr/phpflvplayer/index.html
je crois que ça va tintéressé


Ou peut-être que ce que je décris à
<http://www.crazycat.info/astuce28-php-Faire_du_streaming_en_PHP.html>
peut être utile?

--
Réseau IRC Francophone: http://www.crazy-irc.net
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr