Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2011, 12:56
Avatar de BaByRoDrI
BaByRoDrI
 
Fecha de Ingreso: julio-2009
Ubicación: Mexico
Mensajes: 60
Antigüedad: 15 años, 4 meses
Puntos: 1
Pregunta Uploader seguro

Quiero desarrollar un sencillo y practico uploader de imagenes, quiero hacerlo lo más seguro posible, he aquí lo que he logrado:

Código PHP:
Ver original
  1. <?php
  2. $dir = "/imagenes"; //recuerda que debe tener permisos de escritura ;)
  3. $ext = array('image/jpeg', 'image/gif', 'image/png', 'image/bmp'); //Puedes agregar más extenciones
  4.     foreach($_FILES as $archivo) {
  5.         $temp  = $archivo['tmp_name'];
  6.         $type = $archivo['type'];
  7.         $name = $archivo['name'];
  8.         $ruta = "$dir/$name";
  9.         if(file_exists($temp)) {
  10.             if(is_uploaded_file($temp)) {
  11.                 if(in_array($type,$ext)) {
  12.                     if($type == 'image/jpeg') {
  13.                         $image = imagecreatefromjpeg($temp);
  14.                         imagejpeg($image, $ruta, 100);
  15.                         echo "<img src='$ruta' />";
  16.                     }
  17.                     else if($type == 'image/png') {
  18.                         $image = imagecreatefrompng($temp);
  19.                         imagepng($image, $ruta, 100);
  20.                         echo "<img src='$ruta' />";
  21.                     }
  22.                     else if($type == 'image/gif') {
  23.                         $image = imagecreatefromgif($temp);
  24.                         imagegif($image, $ruta, 100);
  25.                         echo "<img src='$ruta' />";
  26.                     }
  27.                     else {
  28.                         move_uploaded_file($temp, $ruta);
  29.                         echo "<img src='$ruta' />";
  30.                     }
  31.                 } else {
  32.                     echo "Esto no es una imagen :(";
  33.                 }
  34.             }
  35.         }
  36.     }
  37. ?>

Lamentablemente las imagenes GIF, JPG y PNG no las sube al servidor :(, como la librería GD soporta este tipo de imagenes las quiero re-construir para evitar que me vayan a colar por allí algún codigo raro :3.

No se realmente que esta mal, alguien me puede hechar la mano ?

PD. Según yo alguien pueda spoofear la cabecera y aun así podría saltarse la "seguridad" del script no?

Última edición por BaByRoDrI; 19/09/2011 a las 13:15