lunes, 26 de enero de 2009

Upload seguro.

Hola, ahora posteare una forma segura de hascer un upload para archivos para que no alla que preocuparse con nada que suban.



-Primero:

Creamos una carpeta de nombre "Descargas" (sin comillas).

Segundo:

en la carpeta Descargas crearemos un .htaccess que contendra:


Order Deny,Allow
Deny from all
Allow from localhost


Tercero:

Volveremos a la carpeta anterior ( la que contiene la subcarpeta "Descargas" )
y creamos el php que subira los archivos , en mi caso sera upload.php y dentro de este le copiamos el siguiente code:



<?php
if($_POST){
copy($HTTP_POST_FILES['archivo']['tmp_name'], "./Descargas/".$HTTP_POST_FILES['archivo']['name']);
echo "Archivo subido correctamente";
echo "<br>";
echo "Link de descarga : www.nuestrapagina.com/Download.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=&#38;#161;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'></p>";
echo "</form>";
}
?>

Cuarto:

Creamos el archivo "Download.php" y pegamos el siguiente codigo:





<?php
$doc=$_GET["link"];
$MIPATH = getcwd();

if ($doc != NULL ) {
$trozos = explode("../", $doc);
if ($trozos[0] == $doc) {
if (file_exists($MIPATH."/Descargas/".$doc)) {
header('Content-Type:application/octet-stream');

header('Content-Disposition:attachment; filename="'.$doc.'"');

readfile($MIPATH."/Descargas/".$doc);
} else {
echo strip_tags("El archivo $doc no existe o no se encuentra en la carpeta de descargas.");
}
} else {
echo "Detectado LFI.";
}
} else {
echo "No se a ingresado archivo para descargar";
}

?>

1 comentarios:

Darioxhcx dijo...

pasee poliito =P
xD
ta bueno el post che
me guta

nos leemos xDD

Publicar un comentario