Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: GenR_18 en 9 Agosto 2013, 22:34 pm



Título: Seguridad en uploader
Publicado por: GenR_18 en 9 Agosto 2013, 22:34 pm
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
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. body,html{
  6. background-color:black;
  7. color:white;
  8. text-align:center;
  9. }
  10.  
  11. table{
  12. background-color:green;
  13. margin-left:auto;
  14. margin-right:auto;
  15. border:1px solid white;
  16. padding:5px;
  17. }
  18. </style>
  19. <title> UPLOADER v1.2</title>
  20. </head>
  21. <body>
  22. <h2>UPLOADER v1.2</h2>
  23. <table>
  24. <form action="uploader1.php" method="post" enctype='multipart/form-data'>
  25. <tr>
  26. Seleccionar archivo: <br>
  27. <td>
  28. <input type="file" name="file"/>
  29. </td>
  30. <td>
  31. <input type="submit" name="upload" value="Subir!" />
  32. </td>
  33. </form>
  34. </table>
  35. </body>
  36. </html>
  37.  

Código
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title> UPLOADER v1.1</title>
  5. <style>
  6. body,html{
  7. background-color:black;
  8. color:white;
  9. text-align:center;
  10.  
  11. }
  12. #show{
  13. background-color:green;
  14. border:1px solid white;
  15. padding:5px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <h2>UPLOADER v1.2</h2>
  21.  
  22. <h3> Información del archivo: </h3><br>
  23.  
  24. <span id="show">
  25.  
  26. <?php
  27.  
  28. if(!isset($_FILES['file'])){
  29. header("Location: uploader1.html");
  30. }
  31.  
  32.  
  33. $dir = 'uploader/'; // Ruta
  34. $tmp = $_FILES['file']['tmp_name'];
  35. $name = $_FILES['file']['name'];
  36. $permitidas = array('txt','rar','zip'); // Extensiones permitidas
  37. $ext = pathinfo($name, PATHINFO_EXTENSION); // Sacamos la extension
  38. $subido = htmlspecialchars($dir.$name,ENT_QUOTES);
  39.  
  40. function validar($ext,$permitidas){
  41. $v = in_array($ext,$permitidas) ? TRUE : FALSE ;
  42. return $v;
  43. }
  44.  
  45. if(validar($ext,$permitidas)){
  46. echo move_uploaded_file($tmp, $dir.$name) ? "Archivo subido correctamente <a href='$subido'>Aqui</a>" : 'No se ha podido subir el archivo';
  47. }else{
  48. echo 'Archivos con la extension '.htmlspecialchars($ext,ENT_QUOTES).' no son permitidas';
  49.  
  50. }
  51.  
  52. ?>
  53. </span>
  54.  
  55. </body>
  56. </html>
  57.  

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

Salu2!


Título: Re: Seguridad en uploader
Publicado por: 1mpuls0 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.


Título: Re: Seguridad en uploader
Publicado por: GenR_18 en 10 Agosto 2013, 19:24 pm
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!


Título: Re: Seguridad en uploader
Publicado por: GenR_18 en 15 Agosto 2013, 00:34 am
¿Alguien sabe si es vulnerable?