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?
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
Etiquetas
Sigueme
Las mas bonitas
-
Hola queridos lectores, aquí les traigo algunas clases que se utilizan el el curso de Estructura de Datos, pero echas en python. Sin muc...
-
El 5 de noviembre tuve el honor de participar en el LimaHack 2011 que se llevo a cabo en la UPC (Lima-Perú), en el cual volví a ver amigo...
-
Ayer, los que tuvieron oportunidad de ir al Linux Week en la PUCP, pudieron ver la ponencia de Diego Escalante que nos hablaba y nos mostrab...
-
Bueno bueno , no es novedad estos últimos meses han sido muy duros para mi , entre exámenes finales y sentimientos de odio a profesores ( j...
-
¿Y que son privilegios SYSTEM? Como no vas a saber!!! Pequeño saltamontes. Windows tiene tres tipos de cuentas: las de administrador , q...
-
E finlandés de 17 años, Julius “Zeekill” Kivimaki , está vinculado al grupo hacker Escuadrón Lagarto . Ha sido condenado por infiltrarse a...
-
Imaginemos que un día nos llega un sms de un número el cual ya está asociado a nuestro móvil, nunca dudaríamos que el mensaje viene del celu...
-
Si, así como lo leíste , este 12 de marzo se llevará a cabo el Hacksol en la ciudad de Huancayo. El Hacksol es un evento de software libre...
-
ya sé, dirán después de tanto tiempo que aparezco por aquí , es que el trabajo no me a dejado. Hoy me liberé un poquito y escribiré algo c...