Foros del Web » Programando para Internet » PHP »

Seguridad al cargar imagenes?

Estas en el tema de Seguridad al cargar imagenes? en el foro de PHP en Foros del Web. Holas, Cómo se puede hacer para filtrar cualquier troyano, que se pueda meter en un formulario de envio de imágenes ¿Un sistema para detectar extensiones ...
  #1 (permalink)  
Antiguo 21/10/2009, 12:28
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Seguridad al cargar imagenes?

Holas,

Cómo se puede hacer para filtrar cualquier troyano, que se pueda meter en un formulario de envio de imágenes ¿Un sistema para detectar extensiones alcanza? y si es asi, ¿Cómo se hace uno?

Desde ya muchas gracias!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #2 (permalink)  
Antiguo 21/10/2009, 12:36
Avatar de luckystrikede11  
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: Seguridad al cargar imagenes?

Utiliza la clase upload.class.php.. creo que te pude servir

http://www.verot.net/php_class_upload.htm
  #3 (permalink)  
Antiguo 21/10/2009, 12:46
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Cita:
Iniciado por luckystrikede11 Ver Mensaje
Utiliza la clase upload.class.php.. creo que te pude servir

http://www.verot.net/php_class_upload.htm
Holas,

Es una muy buena opcion la que dices, pero estoy buscando algo más simple, como un script con if.

Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #4 (permalink)  
Antiguo 21/10/2009, 13:06
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Seguridad al cargar imagenes?

Podrias usar la informacion del mime type del archivo que se guarda en $_FILES
  #5 (permalink)  
Antiguo 23/10/2009, 10:58
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Ahora ya tengo el formulario de la carga de imagenes, pero me falta sólo esto T_T
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #6 (permalink)  
Antiguo 23/10/2009, 11:04
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

la mejor función es usar la que te dicne del mime types :D ya que con eso se corroborá en realidad el tipo de archivo.

lee aqui
__________________
Hospedaje Web al mejor costo!
  #7 (permalink)  
Antiguo 23/10/2009, 11:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Seguridad al cargar imagenes?

Te sugiero usar fileinfo es la recomendable
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 23/10/2009, 13:04
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 7 meses
Puntos: 41
Respuesta: Seguridad al cargar imagenes?

fileinfo no te da la extensión original del archivo si no recuerdo mal, puedes cambiar a un .php a .jpg y lo subes y te dirá que es jpg, yo te recomiendo mime type, sin lugar a dudas, pero si solo van a ser imágenes te recomiendo que compruebes si tiene ancho y alto, así sabrás si son imágenes o no.
  #9 (permalink)  
Antiguo 23/10/2009, 13:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Seguridad al cargar imagenes?

En el ejemplo que da php.net de fileinfo usa mime type http://www.php.net/manual/en/function.finfo-file.php. Ademas usar mime_content_type esta obsoleto y ellos mismo recomiendan usar fileinfo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 23/10/2009, 18:00
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Sonrisa Respuesta: Seguridad al cargar imagenes?

Hice esto, y por lo visto funciona bien:
Código PHP:
<?php
   
// <FOTOS>
    
if ($_SESSION['usuarioregistrado']){
      
$usuario $_SESSION['nombreusuarioregistrado'];
      
$imgsubida =  "imgusuarios/$usuario/";
      if (
is_dir($imgsubida)){
      
        
$directorio dir("$imgsubida");
    
        while (
false !== ($archivo $directorio->read())){
          if ( (
$archivo != '.') and ($archivo != '..')){
            
            
$isimg pathinfo("$imgsubida/$archivo");
            if (
$isimg['extension'] == 'png'){
              echo 
"<p><img src='$imgsubida/$archivo' width='160' height='160'/></p>";
            }
            elseif (
$isimg['extension'] == 'jpg'){
              echo 
"<p><img src='$imgsubida/$archivo' width='160' height='160'/></p>";
            }
            elseif (
$isimg['extension'] == 'jpg'){
              echo 
"<p><img src='$imgsubida/$archivo' width='160' height='160'/></p>";
            }
            elseif (
$isimg['extension'] == 'gif'){
              echo 
"<p><img src='$imgsubida/$archivo' width='160' height='160'/></p>";
            }
            elseif (
$isimg['extension'] == 'jpeg'){
              echo 
"<p><img src='$imgsubida/$archivo' width='160' height='160'/></p>";
            }
            elseif (
$isimg['extension'] == 'jpeg'){
              echo 
"<p><img src='$imgsubida/$archivo' width='160' height='160'/></p>";
            }
            elseif (
$isimg['extension'] == 'bmp'){
              echo 
"<p><img src='$imgsubida/$archivo' width='160' height='160'/></p>";
            }        
              
        } 
          }
          
$directorio->close();
          if (
is_dir($imgsubida)){
            echo 
"<img src='$imgsubida' width='120' height='120' />";
          } else {
          echo 
'No ha cargado ninguna foto todavia. <a href="subirfoto.php">Subir nueva foto</a>';
          }
        } 
      else {
      echo 
'No ha cargado ninguna foto todavia. <a href="subirfoto.php">Subir nueva foto</a>';
      }
    } else {
    
header("location: registro.php");
    }
    
// </FOTOS>
   
?>
Tiene vulnerabilidades?

Muchas gracias

Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #11 (permalink)  
Antiguo 23/10/2009, 18:02
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

con eso sacas la extensión del archivo más no de que tipo es realmente, yo puedo renombrar un .AVI en .JPG y subirlo sin problemas.
__________________
Hospedaje Web al mejor costo!
  #12 (permalink)  
Antiguo 23/10/2009, 18:10
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Cita:
Iniciado por urgido Ver Mensaje
con eso sacas la extensión del archivo más no de que tipo es realmente, yo puedo renombrar un .AVI en .JPG y subirlo sin problemas.
Tienes razón, no me habia dado cuenta .

Pero probé con el ejemplo que figura en el sitio de php pero me tira error
Código PHP:
    $filename "img/group.png";
$finfo finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("$filename.png") as $filename) {
    echo 
finfo_file($finfo$filename) . "\n";
}
finfo_close($finfo); 
Muchas gracias

Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #13 (permalink)  
Antiguo 23/10/2009, 18:12
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

q error despliega?
__________________
Hospedaje Web al mejor costo!
  #14 (permalink)  
Antiguo 23/10/2009, 18:13
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Código PHP:
Warningfinfo_open() expects parameter 1 to be longstring given in /www/miweb.com/web/usercontrolpanel.php on line 86


Warning
finfo_close(): supplied argument is not a valid file_info resource in /www/miweb.com/web/usercontrolpanel.php on line 90 
Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #15 (permalink)  
Antiguo 23/10/2009, 18:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Seguridad al cargar imagenes?

Porque quisiste seguir el ejemplo literalmente. En primer lugar no debes escribir el foreach. Si vas a usar una direccion no debes colocarlo dentro de un foreach, con solamente abrir con finfo_open, luego hacer el echo con finfo_file y luego cerrar con finfo_close.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #16 (permalink)  
Antiguo 23/10/2009, 18:16
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

la respuesta de @abimaelrc ya te lo dijo todo ;D
__________________
Hospedaje Web al mejor costo!
  #17 (permalink)  
Antiguo 23/10/2009, 18:16
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 7 meses
Puntos: 41
Respuesta: Seguridad al cargar imagenes?

Si vas a utilizar solo imágenes no necesitas nada más que ImageSX para saber el ancho y ImageSY para saber el alto, las únicas que tienen medidas son las imágenes, así que con eso no podrían subirte un archivo con otra extensión renombrado.
  #18 (permalink)  
Antiguo 23/10/2009, 18:35
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
De acuerdo Respuesta: Seguridad al cargar imagenes?

Cita:
Iniciado por abimaelrc Ver Mensaje
Porque quisiste seguir el ejemplo literalmente. En primer lugar no debes escribir el foreach. Si vas a usar una direccion no debes colocarlo dentro de un foreach, con solamente abrir con finfo_open, luego hacer el echo con finfo_file y luego cerrar con finfo_close.

Otra vez lo hice muy literalmente:
Código PHP:
$filename "img/group.png";
$finfo finfo_open(FILEINFO_MIME_TYPE); 
echo 
$finfo//con solamente abrir con finfo_open,
echo finfo_file("$finfo, $filename") . "\n"// luego hacer el echo con finfo_file
finfo_close($finfo); //luego cerrar con finfo_close. 

Envia esto:
Código PHP:
Warningfinfo_open() expects parameter 1 to be longstring given in /www/comunidad-misiones.com/sinepzia/usercontrolpanel.php on line 86

Warning
finfo_file() expects at least 2 parameters1 given in /www/comunidad-misiones.com/sinepzia/usercontrolpanel.php on line 88

Warning
finfo_close(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/sinepzia/usercontrolpanel.php on line 89 

Cita:
Iniciado por codig0 Ver Mensaje
Si vas a utilizar solo imágenes no necesitas nada más que ImageSX para saber el ancho y ImageSY para saber el alto, las únicas que tienen medidas son las imágenes, así que con eso no podrían subirte un archivo con otra extensión renombrado.
Y pero entonces cómo haría si quiero hacer este mismo script para videos?

No saben cuanto admiro su paciencia.

Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #19 (permalink)  
Antiguo 23/10/2009, 18:40
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

Código php:
Ver original
  1. $filename = "img/group.png";
  2. $finfo = finfo_open(FILEINFO_MIME_TYPE,$filename);
  3. echo $finfo; //con solamente abrir con finfo_open,
  4. echo finfo_file($finfo, $filename) . "\n"; // luego hacer el echo con finfo_file
  5. finfo_close($finfo); //luego cerrar con finfo_close.
__________________
Hospedaje Web al mejor costo!
  #20 (permalink)  
Antiguo 23/10/2009, 18:45
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Sigue el mismo problema =(

Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #21 (permalink)  
Antiguo 23/10/2009, 18:46
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

seguro que la ruta en $filename es correcta?
__________________
Hospedaje Web al mejor costo!
  #22 (permalink)  
Antiguo 23/10/2009, 18:49
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Si, completamente, lo que me parece raro es que esta función no aparece en azul oscuro como todas las otras en el Dreamweaver.

Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #23 (permalink)  
Antiguo 23/10/2009, 18:51
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

cambia $finfo = finfo_open(FILEINFO_MIME_TYPE,$filename); por
$finfo = finfo_open(FILEINFO_MIME);
__________________
Hospedaje Web al mejor costo!
  #24 (permalink)  
Antiguo 23/10/2009, 18:56
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Devuelve esto

Código PHP:
Resource id #6PNG image data, 64 x 58, 8-bit/color RGBA, non-interlaced 
Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #25 (permalink)  
Antiguo 23/10/2009, 19:02
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

reemplaza $finfo = finfo_open(FILEINFO_MIME); por $finfo = finfo_open(FILEINFO_MIME_TYPE);
__________________
Hospedaje Web al mejor costo!
  #26 (permalink)  
Antiguo 23/10/2009, 19:10
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Tira los mismos errores.

Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #27 (permalink)  
Antiguo 23/10/2009, 19:15
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

Código PHP:
Ver original
  1. $filename = "img/group.png";
  2. $finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
  3. foreach (glob("*") as $filename) {
  4.     echo finfo_file($finfo, $filename) . "\n";
  5. }
  6. finfo_close($finfo);


asi ya debe funcionar...
__________________
Hospedaje Web al mejor costo!
  #28 (permalink)  
Antiguo 23/10/2009, 19:19
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Superamos el record de errores .

Código PHP:
Warningfinfo_open() expects parameter 1 to be longstring given in /www/comunidad-misiones.com/sinepzia/usercontrolpanel.php on line 86

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_file(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 88

Warning
finfo_close(): supplied argument is not a valid file_info resource in /www/comunidad-misiones.com/web/usercontrolpanel.php on line 90 
Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
  #29 (permalink)  
Antiguo 23/10/2009, 19:21
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Respuesta: Seguridad al cargar imagenes?

no pss dejalo como estaba por lo que veo tú ni te has acomedido a moverle :D
__________________
Hospedaje Web al mejor costo!
  #30 (permalink)  
Antiguo 24/10/2009, 17:33
Avatar de murderer  
Fecha de Ingreso: marzo-2009
Ubicación: Argentina/Misiones/Iguazu/Localhost
Mensajes: 196
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seguridad al cargar imagenes?

Y por qué no usar finfo_open(FILEINFO_MIME)?

Saludos!
__________________
"Cuando te propones una meta todo el mundo conspira para que puedas lograrlo." Puedes encontrame en Twitter
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:59.