Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2011, 01:01
Avatar de Masterphp
Masterphp
 
Fecha de Ingreso: septiembre-2009
Ubicación: /home/php/
Mensajes: 94
Antigüedad: 14 años, 7 meses
Puntos: 3
Subir imagen de manera seguro con php

Hola amigos,
tengo un problema al subir mi imagen con php encontre este aporte subir imagen con php, lo que sucede hace pasar la repeticion por el POST con live_http_headers de firefox esto usan mayormente para hackers de web sites si subo archivo.jpg cambiado de archivo.php lo asepta normal lo que estoy buscando es un codigo php que revise si el archivo .jpg o gif sea el verdadero formato y si no lo es simplente que rechase, solo quiero un code que revise el verdadero formato de archivo el resto yo me encargo de programar.

estube letendo por ahi librerias GD aver si me echan la mano
tengo este codigo pero no sirve para una web seguro.

Código PHP:
Ver original
  1. <?
  2. if($_POST){
  3. // Creamos la cadena aletoria
  4. $str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
  5. $cad = "";
  6. for($i=0;$i<12;$i++) {
  7. $cad .= substr($str,rand(0,62),1);
  8. }
  9. // Fin de la creacion de la cadena aletoria
  10. $tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
  11. $tamaño_max="50000000000"; // Tamaño maximo permitido
  12. if( $tamano < $tamaño_max){ // Comprovamos el tamaño
  13. $destino = 'uploaded' ; // Carpeta donde se guardata
  14. $sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
  15. $tipo=$sep[1]; // Optenemos el tipo de imagen que es
  16. if($tipo == "gif" || $tipo == "pjpeg" || $tipo == "bmp"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
  17. move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' .$cad.'.'.$tipo);  // Subimos el archivo
  18. include('post.html'); // Incluimos la plantilla
  19. }
  20. else echo "el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo desimos
  21. }
  22. else echo "El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo desimos
  23. }
  24. ?>