La Universidad

La Universidad debiera insistirnos en lo antiguo y en lo ajeno. Si insiste en lo propio y lo contemporáneo, la Universidad es inútil porque está ampliando una función que ya cumple la prensa — Jorge Luis Borges. (1899-1986) Escritor argentino.

Problemas de seguridad con WordPress 2.x y el plugin pagebar

Debido a unos cambios hechos en la función get_pagenum_link de las ramas 2.0 y 2.1 de WordPress, varios blogs que usan el plugin pagebar son vulnerables a XSS.

Si alguno de ustedes usa el mencionado plugin y se muestra algún mensaje con la siguientes direcciones URL, entonces necesitan modificar ciertas cosas:

code:
http://tublog.com/index.php?"><script>alert(/XSS/)</script><&paged=2
http://tublog.com/index.php/"><script>alert(/XSS/)</script><&paged=2

Para corregir el problema descrito en el plugin pagebar, tienen que escapar el valor devuelto por get_pagenum_link con las funciones attribute_escape o clean_url. Por si alguien desea, puede bajar la versión modificada o aplicar el parche que corrige estos problemas.

Ejercicio de fin de Semana: Evitar SQL Injection con PHP

A través de tweako (visto hace algunos minutos en menéame) llegué a un artículo -en inglés- que explica como protegerse de ataques de Inyección de SQL con PHP. En el mencionado artículo, en la última parte aparecen las siguientes dos porciones de código:

php:
<?php

# Ok, so I'm going to oversecure a query to the database that selects an article
# by using the given article ID.
# Here is the code.

//Database connection is present
//Make sure that the id is actually given

if (isset($_GET['id']))
{
        $id = $_GET['id'];
}
else
{
        die('Please provide an article ID');
}
 
//Make sure that its an integer
if (is_integer($id))
{
        die('Please enter a valid article ID');
}
 
//Validate that its in between the ranges 1 and 10,000
if ($id < 1 || $id > 10000)
{
        die('Please enter a valid artile ID');
}
 
//Construct the query
$SQL = "SELECT * FROM posts WHERE postID = '".$id."'";

echo $SQL; // Línea agregada

?>
php:
<?php

# This next one will validate a username before its entered into the database.

//Database connection is present
//Make sure that the id is actually given
if (isset($_GET['username']))
{
        $username = $_GET['username'];
}
else
{
        die('Please provide a username');
}
//Get the length of the username
$length = strlen($username);
//Validate the length
if ($length < 3 || $length > 20) // parte modificada
{
        die('Please enter a username between 3 and 20 characters long');
}
//Make sure that its safe to enter the database.
$username = mysql_real_escape_string($username);
//Construct the query
$SQL = "SELECT * FROM username WHERE username = '".$username."'";
//Show the username
echo 'Username: '.stripslashes($username);
//Send the query and close the connection to the database

?>

Los códigos mostrados ¿son correctos? si no es así, ¿qué errores tiene?.

Diario El Comercio estrena “nueva” Web

El Comercio, es uno de los diarios más leídos de Perú y al parecer acaba de estrenar una "nueva" versión de su sitio Web. Giovanni Lamarca hace el siguiente resumen de las novedades:

1. Tiene radio! Por fin un medio multimedia. Ya Terra había incluido la señal de Canal N (y RPP texto), pero esto es distinto. Esto es un periódico que suena e incluye video. Dejo el tema del YouTube para otro post. 🙂

2. Lo más importante arriba y claro Y lo más importante es que yo escoja qué quiero leer. Si la web, si la edición impresa, si los clasificados. 🙂

3 Publicidad entrometida (literalmente) No son los odiosos pop ups que se abren sin que uno les pregunte y aunque se estila usarla como divisor (separa la cabecera de las notas horarias), me resulta un poco grande. Depende del tenor del aviso para tener un elemento que alegre o, en todo caso, desentone. Sobre gustos y colores… 🙁

4 Tags! Por fin sabremos qué palabras o temas son los que más se leen en el diario. La nubecita de palabras (algunas más grandes que otras) indican, por su tamaño, los items o criterios de busqueda o cantidad de apariciones de determinado tema en la edición web. 😉

5 Blogs! Válgame Dios! Y con posibilidad para comentarios! Merece tomarse una res en el Queirolo!

6 Incertidumbre Finalmente, un espacio para ser llenado con interactivos que, desde mi punto de vista, costará encontrarles un común denominador. Foros, mail de contactos, juegos, información de mercado, guías, ediciones anteriores, RSS… mmm Lo bueno es que queda pampa. Harta pampa

Saldo positivo y muchas felicitaciones!!!

Sinceramente no comparto el fanatismo de Giovanni por un trabajo que, en mi opinión, deja mucho que desear; estos son sólo algunos de los puntos en contra que veo:

  • Varias secciones son prácticamente inutilizables si no se tiene javascript habilitado.
  • Demasiado contraste en los colores -- al momento de escribir estas líneas todavía estoy un poco cegado por el amarillo intenso que usaron 😛
  • Hay demasiado desorden, no pude encontrar varias de las cosas que menciona Giovanni 😀

La versión anterior me parece que al menos era un poco más sobria y más usable que esta nueva versión (imagen capturada con Firefox)

¿Las certificaciones sirven para algo?

En mi lectura diaria, encontré una entrada en la que se comenta que SANS creó un instituto de seguridad (Software Security Institute), en el cual se tomará un examen que determina si los candidatos conocen sobre técnicas de seguridad para escribir código seguro (por el momento los lenguages que se mencionan son C/C++, Java/J2EE y próximamente Perl, PHP, .NET y ASP.NET).

Como curioso que soy 🙂 me puse a resolver una prueba gratuita de Java/J2EE -hice esto porque actualmente no existen pruebas para .NET o PHP-, entre las que se incluían algunas preguntas generales y otras específicas con respecto a técnicas de seguridad usando este lenguaje. Esta es la calificación que obtuve:

SANS Software Security Institute Test Results

Ustedes se preguntarán que hay de malo con esta calificación, pues el pequeño detalle es que yo en este momento conozco muy poco de Java y jamás desarrollé una aplicación con J2EE.

Aunque los conceptos de seguridad se pueden aplicar en varios lenguajes, esto dista mucho de los objetivos que SANS -o cualquier empresa que se dedica a certificar gente- desea lograr... si alguien llegara a contratarme basándose solamente en este resultado, es obvio que sería un desastre para el trabajo que me asignen los primeros meses.

No es por desmerecer a las personas que tienen certificaciones -y saben de lo que hablan, pero en mi humilde opinión, éstas solo sirven para adornar el curriculum vitae y casi siempre para convencer a empleadores que sólo se fijan en estas cosas.