2011-05-22 3 views

Répondre

2

getimagesize() a également http://php.net/manual/en/function.getimagesize.php

<?php 
//png image called gif 
$image = 'temp.gif'; 
$size = getimagesize($image); 

if (isset($size['mime']) && $size[0]>0 && $size[1]>0) { 
    echo"Content-type: {$size['mime']}"; 
    //outputs Content-type: image/png 
} else { 
    echo"not an image"; 
} 

?> 
3

Voici une autre façon

<?php 
$info = getimagesize("image.gif"); 
$type = $info['mime']; 
?> 

Mais il serait utile que vous pourriez dire exactement ce que vous entendez par 'sécurité' et quel genre de manipulation que vous avez en tête.

1

Vous pouvez toujours scanner le fichier vous-même pour les octets magiques et ce n'est pas le cas. Il y a un tas de fonctions utiles dans PECL, je crois, mais comme leur disponibilité sur l'hébergement cible peut être, vous pouvez aller à la dure. Voir par exemple ce -

http://www.garykessler.net/library/file_sigs.html

- pour les signatures de fichiers (ou octets magiques, ou tout ce qu'ils sont appelés maintenant). Vous connaissez les types de fichiers que vous allez accepter, il suffit donc de scanner le fichier entrant pour l'ensemble des signatures.

Une autre option est de permettre à PHP d'exécuter le shell unix et d'utiliser la commande file avec les drapeaux appropriés pour tester votre fichier et obtenir le vrai type mime basé sur le contenu réel du fichier.