Seguridad en uploader

Iniciado por GenR_18, 9 Agosto 2013, 22:34 PM

0 Miembros y 1 Visitante están viendo este tema.

GenR_18

He estado leyendo algunos tutoriales y demás sobre la seguridad en los sistemas de upload (con PHP) desde hace tiempo, y creo que tengo un uploader seguro, me gustaría saber si encuentran alguna vulnerabilidad.

Código (HTML) [Seleccionar]

<!DOCTYPE html>
<html>
<head>
<style>
body,html{
background-color:black;
color:white;
text-align:center;
}

table{
background-color:green;
margin-left:auto;
margin-right:auto;
border:1px solid white;
padding:5px;
}
</style>
<title> UPLOADER v1.2</title>
</head>
<body>
<h2>UPLOADER v1.2</h2>
<table>
<form action="uploader1.php" method="post" enctype='multipart/form-data'>
<tr>
Seleccionar archivo: <br>
<td>
<input type="file" name="file"/>
</td>
<td>
<input type="submit" name="upload" value="Subir!" />
</td>
</form>
</table>
</body>
</html>


Código (PHP) [Seleccionar]

<html>
<head>
<meta charset="utf-8">
<title> UPLOADER v1.1</title>
<style>
body,html{
background-color:black;
color:white;
text-align:center;

}
#show{
background-color:green;
border:1px solid white;
padding:5px;
}
</style>
</head>
<body>
<h2>UPLOADER v1.2</h2>

<h3> Información del archivo: </h3><br>

<span id="show">

<?php

if(!isset($_FILES['file'])){
header("Location: uploader1.html");
}


$dir 'uploader/'// Ruta
$tmp $_FILES['file']['tmp_name'];
$name $_FILES['file']['name'];
$permitidas = array('txt','rar','zip'); // Extensiones permitidas
$ext pathinfo($namePATHINFO_EXTENSION); // Sacamos la extension
$subido htmlspecialchars($dir.$name,ENT_QUOTES); 

function 
validar($ext,$permitidas){
$v in_array($ext,$permitidas) ? TRUE FALSE ;
return $v;
}

if(
validar($ext,$permitidas)){
echo move_uploaded_file($tmp$dir.$name) ? "Archivo subido correctamente <a href='$subido'>Aqui</a>" 'No se ha podido subir el archivo';
}else{
echo 'Archivos con la extension '.htmlspecialchars($ext,ENT_QUOTES).' no son permitidas';

}

?>

</span>

</body>
</html>


PD: No soy buen diseñador (como lo habrán notado xD) me gustaría ver consejos también del css.

Salu2!

1mpuls0

Lo vas a implementar a nivel local o lo tendrás en un hosting?

De ser lo segundo déjame decirte que subir archivos a veces resulta algo tedioso.

En algunos casos tienes que dejar definido los permisos de lectura/escritura y en algunos otros otorgar permisos desde código.
Aunque opino que es "más seguro" la segunda opción.

Saludos.
abc

GenR_18

Cita de: Darhius en 10 Agosto 2013, 01:36 AM
Lo vas a implementar a nivel local o lo tendrás en un hosting?

De ser lo segundo déjame decirte que subir archivos a veces resulta algo tedioso.

En algunos casos tienes que dejar definido los permisos de lectura/escritura y en algunos otros otorgar permisos desde código.
Aunque opino que es "más seguro" la segunda opción.

Saludos.

Por el momento de forma local (en forma de practica) para despues cuando se necesite montarlo en un hosting...

Por el tema de los permisos no hay problema, sé cómo hacerlo  :rolleyes:

¿Alguien sabe si es vulnerable?

Salu2!

GenR_18

¿Alguien sabe si es vulnerable?