IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Image exécuté comme un script php


Sujet :

Apache

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut Image exécuté comme un script php
    Bonjour à tous.
    Je rencontre un problème de configuration au niveau de mon serveur. En gros si je lance via mon navigateur un fichier qui se nomme test.php.jpg et qui contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo 'blabla';
    ?>
    Alors celui-ci est exécuté comme du php et non comme une image.

    Je suis sur du Debian 4 avec Apache en version 2.2.3 et php5.2.0. D'après mes recherches c'est un problème du côté d'apache mais je n'ai rien trouvé de bien clair à ce niveau.

    Vous avez une idée ?

    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 149
    Points
    149
    Par défaut
    Quel est l'interêt de faire un fichier .php.jpg ??

    Tu peux cependant faire directement un fichier .php qui te retourne une image (par exemple depuis uen base de donnée)

    je regarde si je retrouves le bout de code le permettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    	if($id) 
    	{
    		//please change the server name username and password according to your mysql server setting
    		$mysql_server="loaclhost";
    		$mysql_username="root";
    		$mysql_password="dbpass20";
    		$mysql_database="rnr";
    		//connect to database using above settings
    		@MYSQL_CONNECT("localhost",$mysql_username,$mysql_password);
    		@mysql_select_db("rnr");	
    		//select the picture using the id
    		$query = "select bin_data,filetype from ads where id=$id";
    		//execute the query
    		$result = @MYSQL_QUERY($query);
    		//get the picture data which will be binary
    		$data = @MYSQL_RESULT($result,0,"bin_data");
    		//get the picture type. It will change according to file extension it may be either gif or jpg
    		$type = @MYSQL_RESULT($result,0,"filetype");
    		//send the header of the picture we are going to send
    		Header( "Content-type: $type");
    		//send the binary data
    		echo $data;
    	};
    ?>
    sources : http://www.developerfusion.com/code/...from-database/

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    En fait j'ai oublié de donner une information. Je me pose cette question suite à la découverte d'une image uploadé par un utilisateur portant un nom .php.jpg. L'utilisateur n'a pas été plus loin mais après des tests que j'ai fais, les fichiers unnom.php.jpg sont exécuté comme du php.

    Mon but n'est pas d'avoir un fichier php qui me renvoie une image mais tout simplement d'empêcher qu'une image uploadé avec un comme nom monfic.php.jpg soit exécuté.

    Edit : c'est la notion de multi-extension...

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    pour le moment j'ai mis ça dans mon fichier de config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            <Directory /dirweb/uploads>
                    SetHandler core
                    RemoveType .php
            </Directory>
    Les fichiers nom.php.jpg ne sont plus exécuté mais proposé au téléchargement et comme dans ce fichier il n'y a pas lieux d'avoir des fichiers php je m'en tape. Au contraire je ne sais pas si c'est très propre comme comportement.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 149
    Points
    149
    Par défaut
    Hummm
    Il s'agit ptête tout simplement d'un screenshot ?

    Mais sinon, au niveau de l'upload il faut faire des vérifications, tel que le type de fichier.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ta modif (RemoveType) me semble correcte. Sinon, dans la config Apache, vraisemblablement dans un .htaccess à la racine du site ou dans le VH, essaie en ajoutant ceci :
    Je pense que le fait que l'extension .php.jpg soit traitée comme une image vient de la négociation de contenu d'Apache : quand c'est activé, si Apache ne trouve pas exactement le fichier que tu demandes, il cherche d'autres fichiers avec un nom approchant suivant certaines règles. C'est possible que l'une d'elles lui fasse exécuter le .php.jpg comme si c'était un .php simple.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Il s'agit ptête tout simplement d'un screenshot ?
    Ca pourrait être le pape que sa changerais rien au problème. Ce n'est pas la photo qui me poste problème, c'est le fait que la soit disant photo est exécuté comme du php.

    _Mac_, dans la config du vhost j'ai déjà essayé -MultiViews mais sans succès.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/12/2006, 01h30
  2. [PHP-JS] Problème d'exécution d'un script php
    Par Yoteco dans le forum Langage
    Réponses: 1
    Dernier message: 06/10/2006, 14h19
  3. Réponses: 3
    Dernier message: 22/06/2006, 14h47
  4. [Image] Enregistrer une image générée par un script PHP
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 22/05/2006, 17h35
  5. [Système] Exécution d'un script PHP à heures fixes
    Par Kiyomizu dans le forum Langage
    Réponses: 5
    Dernier message: 26/04/2006, 09h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo