Foros del Web » Programando para Internet » PHP »

validar contenido del fichero de la imagen al subirla

Estas en el tema de validar contenido del fichero de la imagen al subirla en el foro de PHP en Foros del Web. hola nuevamente tengo este script que baje de una web el cual es un formulario para subir imágenes al servidor con el famoso botón examinar ...
  #1 (permalink)  
Antiguo 21/05/2015, 23:14
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
validar contenido del fichero de la imagen al subirla

hola nuevamente

tengo este script que baje de una web el cual es un formulario para subir imágenes al servidor con el famoso botón examinar


Código HTML:
Ver original
  1. <form action="upload.php" method="post" enctype="multipart/form-data">
  2.   <input name="archivo" type="file" size="35" />
  3.   <input name="enviar" type="submit" value="Upload File" />
  4.   <input name="action" type="hidden" value="upload" />    
  5. </form>

y este es el Script PHP que hace el resto..

Código PHP:
$status "";
if (
$_POST["action"] == "upload") {
    
// obtenemos los datos del archivo
    
$tamano $_FILES["archivo"]['size'];
    
$tipo $_FILES["archivo"]['type'];
    
$archivo $_FILES["archivo"]['name'];
    
$prefijo substr(md5(uniqid(rand())),0,6);
   
    if (
$archivo != "" || $tipo == "image/gif" || $tipo == "image/jpeg" || $tipo == "image/jpg") {
        
// guardamos el archivo a la carpeta files
        
$destino =  "files/".$prefijo."_".$archivo;
        if (
copy($_FILES['archivo']['tmp_name'],$destino)) {
            
$status "Archivo subido: <b>".$archivo."</b>";
        } else {
            
$status "Error al subir el archivo";
        }
    } else {
        
$status "Error al subir archivo";
    }

pero existe un problema y es que existen personas inescrupulosas que crean archivos php o shell con extensiones de imagen (archivos con extensión de imagen que son archivos con códigos maliciosos ocultos) para burlar dicho script el cual es muy vulnerable...

como hago para evitar que puedan subir este tipo de archivos escondidos en imágenes...


Estuve leyendo y es algo como validar en contenido del fichero de la imagen
utilizando las funciones de PHP getimagesize() y Content-type()


Pero no doy como agregarle dichas funciones al código

espero me puedan ayudar

graciass
  #2 (permalink)  
Antiguo 22/05/2015, 08:11
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: validar contenido del fichero de la imagen al subirla

aquí hay un apartado del getimagesize()

http://www.bitrepository.com/how-to-...ge-upload.html

saludos
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 22/05/2015, 08:45
Avatar de jolijun  
Fecha de Ingreso: mayo-2015
Mensajes: 19
Antigüedad: 8 años, 11 meses
Puntos: 4
Respuesta: validar contenido del fichero de la imagen al subirla

Si te preocupa la seguridad, lo principal son los permisos, dale permisos 644 que solo permiten leer el archivo.

Código PHP:
Ver original
  1. $destino =  "files/".$prefijo."_".$archivo;
  2.  chmod($destino, 644);
  #4 (permalink)  
Antiguo 23/05/2015, 02:23
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: validar contenido del fichero de la imagen al subirla

Cita:
Iniciado por jolijun Ver Mensaje
Si te preocupa la seguridad, lo principal son los permisos, dale permisos 644 que solo permiten leer el archivo.

Código PHP:
Ver original
  1. $destino =  "files/".$prefijo."_".$archivo;
  2.  chmod($destino, 644);
Que tienen que ver los permisos, con validar que la extensión corresponda a el archivo?
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #5 (permalink)  
Antiguo 25/05/2015, 23:24
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
Respuesta: validar contenido del fichero de la imagen al subirla

hola si es que notaba q subian la informacion acompañada de un archivo con extencion jpg la cual no abria como imagen a pesar q tenia el icono caracteristico de las imagenes jpg y la extensión jpg pero que al abrirlas con un block de notas tenian codigo php listo para hackear o hacer modificaciones al servidor donde alojaba los archivos,.. como hago para terminar el codigo y darle esa seguridad q mal intensionados hagan mal subiendo ese tipo de archivos y aplicarlo a mi ejemplo el que puse arriba gracias
  #6 (permalink)  
Antiguo 25/05/2015, 23:30
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
Respuesta: validar contenido del fichero de la imagen al subirla

hola si es que notaba q subian la informacion acompañada de un archivo con extencion jpg (pues el formulario a pesar q valida que sean archivos jpg sigue siendo vulnerable pues montan esos archivos con fubciones ocultas con eextensión jpg) dicho archivo no abria como imagen a pesar q tenia el icono caracteristico de las imagenes jpg y la extensión jpg pero que al abrirlas con un block de notas tenian codigo php listo para hackear o hacer modificaciones al servidor donde alojaba los archivos,.. como hago para terminar el codigo y darle esa seguridad q mal intensionados hagan mal subiendo ese tipo de archivos y aplicarlo a mi ejemplo el que puse arriba gracias
  #7 (permalink)  
Antiguo 26/05/2015, 02:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: validar contenido del fichero de la imagen al subirla

Necesitas obtener el mime type del archivo, para lo cual puedes hacer uso de las funciones de FileInfo. También puedes usar la función getimagesize.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 26/05/2015, 15:06
 
Fecha de Ingreso: noviembre-2004
Mensajes: 249
Antigüedad: 19 años, 5 meses
Puntos: 1
Respuesta: validar contenido del fichero de la imagen al subirla

como lo logro
  #9 (permalink)  
Antiguo 26/05/2015, 16:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: validar contenido del fichero de la imagen al subirla

Esas palabras resaltadas en anaranjado que puedes ver en mi anterior respuesta, son enlaces. Ingresa a ellos y lee. Encontrarás la explicación de su uso y ejemplos. No olvides buscar más por tu cuenta.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: contenido, fichero, formulario
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:37.