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:
El segundo es el archivo upload.php<Files *> Order Deny,Allow Deny from all Allow from localhost </Files>
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>";
}
?>
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";
}
?>