Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/12/2009, 16:36
Avatar de eminem24
eminem24
 
Fecha de Ingreso: julio-2008
Mensajes: 68
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación Seguridad para mi upload!!

Hola a todos, acabo de probar un upload que explicaban en un foro sobre estas cosas. Todo va correcto y hace lo que yo quiero, que es decirme la url del archivo en cuestión para que el usuario pueda descargarlo o acceder a el(porque será de música). Pero me gustaría que sólo se pudieran enviar archivos mp3 y con un tamaño máximo. Y también añadir una barra de proceso para que el usuario sepa cuanto queda.

Pero sobre todo querría saber si es totalmente seguro para código malicioso o lo que sea. En la carpeta de descargas tengo permisos 766, ¿es correcto así?

El upload consta de 3 archivos y no usa base de datos.

El primero es un .htaccess que va en la carpeta de descargas:

Código:
<Files *>
Order Deny,Allow
Deny from all
Allow from localhost
</Files>
El segundo es el archivo upload.php

Código PHP:
<?php
if($_POST){
copy($HTTP_POST_FILES['archivo']['tmp_name'], "./musica/".$HTTP_POST_FILES['archivo']['name']);
echo 
"Archivo subido correctamente";
echo 
"<br>";
echo 
"Link de descarga : http://www.miweb.com/track.php?link=".$HTTP_POST_FILES['archivo']['name'];
}else{
$MIPATH getcwd();
$NOMBRE str_replace($MIPATH."/"""__FILE__);
echo 
"<form action='".$NOMBRE."' method='post' enctype='multipart/form-data' name=¡form1'>";

echo 
"<p align='center'>Archivo:";
echo 
"<input name='archivo' type='file' id='archivo'>";
echo 
"</p>";
echo 
"<p align='center'><input name='boton' type='submit' id='boton' value='Enviar tema'></p>";
echo 
"</form>";
}
?>
Y el tercero track.php:

Código PHP:
<?php
$doc
=$_GET["link"];
$MIPATH getcwd();
 
if (
$doc != NULL ) {
$trozos explode("../"$doc);
if (
$trozos[0] == $doc) {
if (
file_exists($MIPATH."/musica/".$doc)) {
header('Content-Type:application/octet-stream');
 
header('Content-Disposition:attachment; filename="'.$doc.'"');
 
readfile($MIPATH."/musica/".$doc);
} else {
echo 
strip_tags("El archivo $doc no existe o no se encuentra en la carpeta de música.");
}
} else {
echo 
"Detectado LFI.";
}
} else {
echo 
"No se ha ingresado un archivo para descargar";

 
?>
Haber si alguien puede ayudarme con esto, gracias anticipadas! un saludo!