16 de febrero de 2010

Conociendo el sistema de quien accede a la web

Existen múltiples sitios web que te muestran tu sistema y tu navegador, pero ¿como lo descubren?.

Conocer el sistema y navegador de quien accede a un sitio web es fácil de descubrir usando el valor "User-Agent" que está definido en el protocolo HTTP.

Este tag es usado para indicar que agente está accediendo a la web.

A continuación podéis ver unos cuantos ejemplos:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB0.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.7) Gecko/20100106 Ubuntu/9.10 (karmic) Firefox/3.5.7
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; es-ES; rv:1.9.2) Gecko/20100115 Firefox/3.6
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A542a Safari/419.3
Opera/9.80 (Windows NT 6.0; U; es-LA) Presto/2.5.21 Version/10.50
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)

Como podeis observar es simple ver el sistema y navegador de quien accede a el sitio web.

Los dos últimos agentes pertenecen a los motores de búsqueda Google y Yahoo!.

En muchas ocasiones las barras de descarga y otros componentes modifican el User-Agent para que cuando se acceda a un sitio con alguna tecnología el servidor sepa como actuar.

13 de febrero de 2010

Generación dinámica de imagenes en PHP

PHP es un lenguaje de programación que nos permite generar imágenes de forma dinámica.

La generación de imágenes dinámicas puede ser muy util para hacer Captchas, pero en el ejemplo del código a continuación vamos ha ver varias de las funciones que creo más interesantes para esto.
Header("Content-type: image/jpeg");
//Obtenemos la imagen de fondo
$img_fondo = imagecreatefromjpeg("fondo.jpg");

//Obtenemos la imagen para insertar
$img = imagecreatefromjpeg('img.jpg');
$claridad = 100;
imagecopymerge($img_fondo, $img, 40, 40, 0, 0, imagesx($img), imagesy($img), $claridad);

//Escribiendo en texto plano
$texto = "Esto es un texto sin Fuente";
$orange = imagecolorallocate($img_fondo, 220, 210, 60);
$mitad = (imagesx($img_fondo)-7.5 * strlen($texto))/2;
imagestring($img_fondo,5,$mitad,80,$texto,$orange);

//Escribiendo en texto con fuente
$font = './fuente.ttf';
$tam = 20;
$rotado = 0;
$texto = "Text TTF";
$mitad = (imagesx($img_fondo)-7.5 * strlen($texto))/2;
imagettftext($img_fondo, $tam, $rotado, $mitad, 120, $orange, $font, $texto);

imagejpeg($img_fondo);
imagedestroy($img_fondo);

Este código dá como resultado algo similar a lo siguiente:
Imagen generada con el codigo anterior

Podeis mirar más información en la web de PHP