elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: [1]
1  Programación / PHP / Script para bajar archivos subidos con cualquier extensión en: 17 Agosto 2012, 21:38 pm
Hola a todos, en mi primer post en este foro, les quiero contar como resolví una situación para que me digan si está bien o es una locura.

Quiero agregar la posibilidad de subir archivos de cualquier extensión y con cualquier contenido a un sistema de administración de servicios. Dentro de las posibilidades tienen que estar archivos de PHP, pero tengo que tener cuidado con la seguridad.

Se me ocurrió al subirlo realizarle lo siguiente a cada archivo:
  • Guardo en una tabla de MySQL los datos del nombre, tipo de archivo, usuario que lo subió, etc.
  • Le cambio el nombre a algo aleatorio de unos 20 caracteres y sin extensión
  • Le cambio los permisos a 000 (se subió como archivo de propiedad de www-data porque fue por Apache)

De esa forma no es accesible, una porque no saben el nombre del archivo en el servidor y otra porque no tienen permiso para nada.

Al bajarlo se hace desde un boton que llama por ajax a un archivo bajar.php que controla que solo el usuario con permiso para ver el archivo puede acceder al siguiente script:

Código:
$file = mysql_fetch_assoc(mysql_query("SELECT nombre, tamaño, random FROM archivos WHERE idarchivo='".$id."' LIMIT 1"));
chmod($file['random'], 0400);
$fd = fopen ($file['random'], "r");
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$file["nombre"]."\"");
header("Content-length: $file['tamaño']");
header("Cache-control: private");
while(!feof($fd))
{
        $buffer = fread($fd, 2048);
        echo $buffer;
}
fclose ($fd);
chmod($file['random'], 0000);

Les agradezco sus opiniones.
Saludos.
Andresmaiden
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines