Archive for the ‘PHP’ category

Registringir acceso externo a un link

noviembre 7th, 2009

Hace pocos días un amigo me pregunto que si era posible que las personas solo entraban a una URL especifica haciendo clic desde un link en su propia pagina, es decir, que no se pueda ingresar a un link directamente escribiendo la dirección en la barra del navegador ni tampoco que se pueda ingresar haciendo clic desde otra pagina web ajena a la dueña del link, y le he dado una solución que me parece muy interesante, aquí coloco el código fuente y un link a un script php que he creado para que vean que funciona, hagan clic aquí y verán que entra pero si copia y pegan el link no funcionará, incluso si colocan el link en otra web tampoco funcionará: http://www.rafaelvega.info/pagina_restringida.php :)

if( !isset($_SERVER['HTTP_REFERER']) || (isset($_SERVER['HTTP_REFERER']) && !preg_match("/".$_SERVER['HTTP_HOST']."/",$_SERVER['HTTP_REFERER']))){
die("esta url solo puede ser accedida desde un link directo dentro de la pagina ".$_SERVER['HTTP_HOST']);
}

Saludos

Vulnerabilidad en wordpress

octubre 16th, 2009

Para los que usan wordpress deben corregir este error.
Resulta que hay una vulnerabilidad en el archivo wp-trackbacks.php que puede hacernos caer el servicios si nos hacen peticiones por algo mas de 5 minutos, la solución es buscar la linea de código

$charset = $_POST['charset'];

y reemplazarla por:

$charset = str_replace(”,”,”",$_POST['charset']);
if(is_array($charset)) { exit; }
$charset = str_replace(”,”,””,$_POST['charset']);

if(is_array($charset)) { exit; }

Calcular cambio de divisas

agosto 29th, 2009

Resulta que desde el primero de enero de 2008 estoy pendiente al cambio de divisas casi que a diario, la que me interesa es de EUR a COP. El hecho aquí es que yo siempre escribía en el buscador de google “eur to cop” y ya obtenía el cambio de esta divisa, así que google es una buena herramienta para eso, ustedes pueden escribir el código de la divisa origen y la destino y Mr. Google les da el respectivo cambio del momento.

Resulta que un día Bubok necesitaba implementar un script que nos mantuviera actualizado el valor de la divisa en la base de datos cada cierto intervalo de tiempo. Fue allí donde Luis Carlos, un programador de mi grupo de desarrollo, encontró una forma de obtener estos valores de cambio gracias a que yahoo decidió compartir su información con la Internet.

La url para obtener un archivo .cvs es esta:

http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=EURCOP=X donde EURCOP es la divisa origen y la divisa destino respectivamente.

Ahora el código PHP que encontró Luis para obtener la razón de cambio de las divisas es muy sencillo, lo copio a continuación:

$url = ‘http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=EURCOP=X’;
$handle = @fopen($url, ‘r’);
if ($handle) {
$result = fgets($handle, 4096);
fclose($handle);
}
$array = explode(‘,’,$result);

Entonces se tiene que el valor de cambio en $array[1]

Espero que a alguien mas le sirva :)