Ver Mensaje Individual
  #106 (permalink)  
Antiguo 20/05/2010, 04:24
Avatar de Flow89
Flow89
 
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Seguridad en PHP [Importante];

No se que pasa, pero todos los días a esta hora se me peta la web.. jajaja xD

Bueno, despues de tener unos problemillas, e investigar probar etc, he conseguido arreglarlo y ya funciona 100% el upload, sube los ficheros etc.. (antes me los subia sin extension y cosas así xD).

os dejo el codigo por si os sirve a alguien.

formulario.php
Código PHP:
<?php
//incluimos el archivo de conexion y el login
include("conex.php");
include(
"login.php");

//comprobamos si esta logueado correctamente, si lo esta mostramos la pagina 
if($loginCorrecto)
?>
<body>
<div id="gnoticias">
<table width="650" border="0" align="center">
    <tr>
      <td colspan="2"><div align="center"><img src="http://www.forosdelweb.com/f18/imagenes/panel.png" width="500" height="200" /></div></td>
<tr>
    <td><div align="center" class="Estilo16 Estilo40">Añade una Descarga | <a href='../loginpanel/administracion.php'> Volver </a></div></td>
  </tr>
<tr><td>
<form action="adescarga.php" method="post" enctype="multipart/form-data">
     <input type="hidden" name="MAX_FILE_SIZE" value="10000000000000000000"><br><br>
      <b>Titulo:</b><br>
      <input type="text" name="titulo"><br><br>
      <b>Autor:</b><br>
      <input type="text" name="autor"><br><br>
      <b>Categoría:</b><br>
       <input type="text" name="categoria"><br><br>
    <b>Enviar un nuevo archivo: </b><br>
    <input name="userfile" type="file"><br> <br>
      <b>Escriba una breve descripcion</b><br>
      <textarea name="descripcion" class="widgEditor" cols="50" rows="10"></textarea><br>
      <input type="submit" value="Subir Archivo"><br>
      </form>
</td></tr>  
</table>
</div>
<?php 
}
//si no esta logueado, le mostramos este error y le redirigimos.
else

echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../panel.php\">";
echo 
"<table style=\"height:100%;width:100%;\" border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">No estas logueado, no puedes acceder aquí.<br> Seras redireccionado automaticamente.</div></td></tr></table>"
}
?>
adescarga.php
Código PHP:
<?
//tomo el valor de un elemento de tipo texto del formulario
$titulo = ($_POST[titulo]);
$autor = ($_POST[autor]);
$categoria = ($_POST[categoria]);
$descripcion = ($_POST[descripcion]);

//Creamos el array de archivos permitidos para subir al servidor
$tipos_permitidos = array('multipart/x-zip',
'application/msword',
'audio/x-wav',
'text/plain',
'application/x-shockwave-flash',
'text/richtext',
'application/octet-stream',
'application/mspowerpoint',
'application/pdf',
'audio/mpeg',
'video/mpeg',
'video/mpeg',
'video/x-mpeg',
'audio/x-mpeg-3',
'video/quicktime',
'image/jpeg',
'image/jpeg',
'video/avi',
'video/msvideo'); 

//datos del arhivo
$nombre $_FILES['userfile']['name']; 
$nombre_archivo $_FILES['userfile']['tmp_name'];
$tipo_archivo $_FILES['userfile']['type'];
$tamano_archivo $_FILES['userfile']['size'];
$destino '../descargas';

//compruebo si las características del archivo son las que deseo
if (!(in_array($tipo_archivo,$tipos_permitidos)) && ($tamano_archivo 10000000000000000000)) { 
    echo 
"<table align=\"center\">La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table></table>";
}else{
    if (
move_uploaded_file($nombre_archivo"$destino/$nombre")){
       echo 
"El archivo ha sido cargado correctamente.";
    }else{
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
?>
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.