Páginas

Extraer metadatos de imagenes con php

¿Que aprenderemos hoy?

a saber si una foto a sido retocada, y poder ver la imagen original.

Bien los meta-datos son Información que se guarda automáticamente al generar un archivo: .doc, .jpg,etc. y que no son visibles al ojo humano.

Esta información la genera el software que se utilizo para crear el archivo en el caso de las fotos, por ejemplo la genera el software de la cámara fotográfica ( solo si es digital ¬¬).

en el caso de las fotografiás un tipo de meta-datos son los EXIF.

bien los meta-datos EXIF contienen información importante como : fecha original, modelo de la cámara,etc. pero lo mas importante y en lo que se fijara este post es extraer el "THUMBNAIL" original.

Para los que no sabían cada vez que se modifica una imagen se guarda una copia en miniatura de la original que no se podría observar a simple vista, pero con algo de código podremos extraerlo.

ejemplo:

aquí vemos una foto trucada y a su lado el thumbnail extraido ( la foto original)


¿Como la extraemos con PHP ?

con exif_thumbnail:

eh aquí un pequeño código el cual puedes modificar:

------------------------------------------------------------------------

<?php


set_time_limit ( 0 );


function getmicrotime () {


$temparray = split ( " " , microtime ());


$returntime = $temparray [ 0 ]+ $temparray [ 1 ];


return $returntime ;


}


 





$maindir = "." ;


$mydir = opendir ( $maindir ) ;


$starttime = getmicrotime ();


$i = 0 ;


while( $fn = readdir ( $mydir ))


{


$startimagetime = getmicrotime ();


$ext = strtolower ( substr ( $fn , strlen ( $fn )- 3 ));


if ( $ext == "jpg" ) {


$i ++;


echo $fn . " se proceso satisfactorio<br>" ;


flush ();


 


$image = exif_thumbnail ( $fn , $width , $height , $type );


if ( $image !== false ) {


 


$handle = fopen ( $fn . ".thumb.jpg" , 'a' );


echo "<img src='".$fn."' width='400' height='301' />";


echo "<img src='".$fn .".thumb.jpg' width='400' height='301' />";


fwrite ( $handle , $image );


} else {


echo "imagen de miniatura no disponible para: " . $fn . "<br>" ;


echo "<img src='".$fn.".thumb.jpg' width='400' height='301' />";


}


}


}


closedir ( $mydir );


$endtime = getmicrotime ();


echo "<br>Tiempo tardado " ;


print $endtime - $starttime ;


echo "<br> Imagenes procesadas: " . $i ;


 


?>




---------------------------------------------------------------------

simplemente montalo en localhost, mete las fotos en la carpeta raíz y voala , podrás ver las fotos originales .

Saludos Dr. NeoX. :)



Extraer metadatos de imagenes con php

¿Que aprenderemos hoy?

a saber si una foto a sido retocada, y poder ver la imagen original.

Bien los meta-datos son Información que se guarda automáticamente al generar un archivo: .doc, .jpg,etc. y que no son visibles al ojo humano.

Esta información la genera el software que se utilizo para crear el archivo en el caso de las fotos, por ejemplo la genera el software de la cámara fotográfica ( solo si es digital ¬¬).

en el caso de las fotografiás un tipo de meta-datos son los EXIF.

bien los meta-datos EXIF contienen información importante como : fecha original, modelo de la cámara,etc. pero lo mas importante y en lo que se fijara este post es extraer el "THUMBNAIL" original.

Para los que no sabían cada vez que se modifica una imagen se guarda una copia en miniatura de la original que no se podría observar a simple vista, pero con algo de código podremos extraerlo.

ejemplo:

aquí vemos una foto trucada y a su lado el thumbnail extraido ( la foto original)


¿Como la extraemos con PHP ?

con exif_thumbnail:

eh aquí un pequeño código el cual puedes modificar:

------------------------------------------------------------------------

<?php


set_time_limit ( 0 );


function getmicrotime () {


$temparray = split ( " " , microtime ());


$returntime = $temparray [ 0 ]+ $temparray [ 1 ];


return $returntime ;


}


 





$maindir = "." ;


$mydir = opendir ( $maindir ) ;


$starttime = getmicrotime ();


$i = 0 ;


while( $fn = readdir ( $mydir ))


{


$startimagetime = getmicrotime ();


$ext = strtolower ( substr ( $fn , strlen ( $fn )- 3 ));


if ( $ext == "jpg" ) {


$i ++;


echo $fn . " se proceso satisfactorio<br>" ;


flush ();


 


$image = exif_thumbnail ( $fn , $width , $height , $type );


if ( $image !== false ) {


 


$handle = fopen ( $fn . ".thumb.jpg" , 'a' );


echo "<img src='".$fn."' width='400' height='301' />";


echo "<img src='".$fn .".thumb.jpg' width='400' height='301' />";


fwrite ( $handle , $image );


} else {


echo "imagen de miniatura no disponible para: " . $fn . "<br>" ;


echo "<img src='".$fn.".thumb.jpg' width='400' height='301' />";


}


}


}


closedir ( $mydir );


$endtime = getmicrotime ();


echo "<br>Tiempo tardado " ;


print $endtime - $starttime ;


echo "<br> Imagenes procesadas: " . $i ;


 


?>




---------------------------------------------------------------------

simplemente montalo en localhost, mete las fotos en la carpeta raíz y voala , podrás ver las fotos originales .

Saludos Dr. NeoX. :)



Ignorancia de la seguridad en la programación?

Bueno esta de mas decir las graves fallas que se encuentran a diario en el mundo, pero hay fallas que realmente dejan mucho que desear, sobre todo las fallas en donde los atacantes tienen mayor oportunidad de ataque como las webs dinamicas(php,asp,etc).
Solo falta echar un vistaso a google poniendo un dork como "inurl:hoja.php?id=" y encontrarnos con imnumerables webs vulnerables a este ya conocido y antigua modalidad de ataque.
La pregunta que me viene a la cabeza es por que?, a caso a estos programadores no les enseñaron nociones basicas de seguridad, filtrado de caracteres especiales, etc?.
Que quede claro no es la unica falla podemos encontrar desde "arbitrary upload","paginas mal indexadas",y un monton de graves "inyecciones SQL" que nos darian el acceso a la preciada web.
Los atacantes son muy astutos y se las arreglan muy bien a la hora de proponerse la intrución a una web especifica desde un "profundo penetration-testing" a la misma web hasta un "reverse ip", para ver por donde entrar.
Por eso estaremos acostumbrados a que cuando salga una nota en la TV de titulo "HACKEAN WEB DE EL ESTADO" que se vea al atacante o hacker como un Dios de las maquinas que de forma casi magica pudo penetrar los seguros servidores del gobierno. por que la seguridad muchas veces se ve como un tema tabú y por lo tanto se toca poco o casi nada a la hora de enseñar a las personas a programar relegandolo como un tema underground yteniendo la idea de que una intrución no se puede evitar , que cuando un "hacker" quiere entrar lo hace y no hay quien lo detenga, olvidandose las distintas tecnicas de hardening de servidores y la programación de forma segura.
Por eso debemos enfatizar en la seguridad creo yo, la seguridad y la eficiencia son los dos pilares basicos que debemos tomar en cuenta a la hora de programar para luego no estar rompiendonos la cabeza por un "hacker" cuando ya sea demaciado tarde.

Los mejores blog del mundo

Sigueme

Las mas bonitas