Ahora veo un ejemplo en el que un ataque puede evitar estas funciones cuando se crea la página con HTML no estándar. Tenemos el tÃpico ejemplo de un texto que se introduce por un formulario y se presenta como un enlace.
Pixy es una aplicación Java que rastreará nuestro código PHP en busca de vulnerabilidades XSS y SQL Injection.
Encuentrq vulnerabilidades que normalmente se encuentran en auditorÃas manuales, salvo que estas pueden pasar por encima algunas. Pixy tan solo es válido para código PHP4, aún no es compatible con PHP5. Realiza informes sobre los puntos vulnerables del código, para lo cual toma el programa PHP como entrada y acto seguido lo analiza. Pixy
VÃa / VT’s Tech Blog
Hace unos días me vi en la necesidad de implementar en una web un proceso que puede tardar uno o dos minutos dependiendo de varios factores. El problema reside en que es un proceso que inicia el usuario y el usuario normalmente es impaciente, por lo …
Para mí, uno de los mayores fracasos de Twitter es su API, una limitación de su uso increíble para algo que le podría dar mucho juego a la aplicación. Ahora mismo no sé en cuánto está el límite, pero la posibilidad de realizar una aplicación basada en Twitter es una pesadilla.
Para aquellos que no quieran sufrir lo que hemos sufrido con TwitterPoster (los espacios en blanco es porque la gente actualiza su imagen y no podemos recuperar la de todos los usuarios por el límite en el API de Twitter), les recomiendo usar Twitter mediante CURL.
Os paso un script sencillito que he realizado:
<?php
// Primer hacemos login
$url ="https://twitter.com/sessions";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// Por si tienen limitación por navegador
curl_setopt($ch, curlOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
// Poned una ruta para las cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/');
curl_setopt ($ch, CURLOPT_COOKIEFILE, '/temp/');
curl_setopt ($ch, CURLOPT_POSTFIELDS, "username_or_email=[usuario]&password=[contraseña]");
// Para que funcione el https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, curlOPT_SSL_VERIFYHOST, 2);
curl_exec ($ch);
// Cargamos el home, porque Twitter añade dos campos ocultos para poder publicar por web
$url ="http://twitter.com/home";
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec ($ch);
// Recuperamos los campos ocultos
preg_match('//', $result, $match);
$authenticity_token = $match[1];
preg_match('//', $result, $match);
$siv = $match[1];
// Insertamos el texto
$res = $url ="http://twitter.com/status/update";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'siv='.$siv.'&authenticity_token='.$auth.'&status=[texto]');
curl_exec ($ch);
curl_close ($ch);
unset($ch);
?>
¿Qué fallo tiene este script? pues que si cambian el HTML (campos de formulario, …) o las URLs deja de funcionar, pero al menos no tenemos limitaciones. Eso sí, es más costoso para sus servidores y para los nuestros, porque en vez de hacer una llamada, hacemos 3, y en nuestro caso, a parte parseamos una página para obtener dos campos ocultos.
GeSHI (Generic Syntax Highlighter) es un script PHP que resalta el código que indiquemos realizado en un total de más de 50 lenguajes de programación, entre los que se encuentran PHP, Java, HTML, CSS, C#, Javascript y SQL.
Inicialmente desarrollado para el sistema de foros phpBB, finalmente ha pasado a ser un proyecto independiente. Entre sus caracterÃsticas destaca la cantidad de lenguajes que admite, la facilidad de añadir un lenguaje nuevo y la facilidad para modificar la salida del script.
Lo que más me gusta de este script es que enlaza con las URLs de las funciones de los lenguajes. GeSHI
En mi blog personal, me ocurre que cuando quiero mostrar código en un post tengo que modificarlo para que quede bonito, poniéndole estilos, etc… La verdad es que es bastante aburrido y no es algo que me guste mucho hacer, me da mucha pereza.
Supongo que hay más gente que se encuentra en mi situación y me entenderán. La solución es usar unas librerías que me modifiquen el código y lo muestre con colores y tabulado. No me he puesto a buscar en Google, pero habrá ya alguna, de todas formas, siempre está bien saber cómo se podría hacer.
En este caso vamos a explicar como realizar un pequeño parser de código PHP, con tan solo unas funcionalidades: reconoce comentarios, palabras reservadas, funciones, variables y texto entrecomillado, a parte de realizar una mínima tabulación. No reconoce código HTML, ni realiza otras cosas, aunque las ampliaciones son posibles.
Si nos encontramos con la necesidad de usar Zend Framework con Code Igniter, podemos encontrarnos problemas a la hora de juntar ambos frameworks. El problema se encuentra en que Code Igniter separa el código en diferentes directorios para el core y la aplicación.
El truco es crear un helper (funciones que realizan pequeñas tareas) y la funcionalidad de autoload de Code Igniter. El helper que se crea el autor solo añade un directorio en el include_path, y el directorio que añadirá será el del Zend Framework.
Despues en el autoload del Code Igniter se le añade se que cargue automáticamente el helper que nos hemos creado. Using the Zend Framework with Code Igniter (an alternative)