Categories
PHP Quiz Seguridad XSS

Cuando los filtros no hacen lo que deberían

El código que se muestra a continuación, es un ejemplo simplificado del comportamiento que ofrece en una de sus secciones, un -importante- diario español.

Categories
Spam Varios WordPress

Los comentarios temporalmente entran en moderación

Hoy este -pequeño- blog recibió una cantidad considerable de spam en tan solo unas cuantas horas, lo peor de todo esto es que todos los comentarios pasaron como "buenos" sin que Akismet pueda hacer algo al respecto*.

Esta es una pequeña muestra del "ataque" de hoy:

Spam referer

Debido a que últimamente ando algo ocupado, he tomado la decisión de moderar los comentarios -al menos hasta que encuentre una solución, puesto que me resulta más fácil hacer eso que estar borrando manualmente el spam.

¿Alguien conoce o ha desarrollado algún plugin para evitar los spam floods?

*: Akismet se basa en los aportes que hacen diferentes bloggers al marcar un comentario como spam, pero si tienes la mala suerte de que nadie haya hecho ese trabajo sobre un comentario X, pues estás en problemas.

Categories
.NET ASP.NET Excel

Exportar el contenido de un GridView a Excel

Hace ya bastante tiempo publiqué un pequeño "control" para exportar un Datagrid a Excel, esa vez decidí no publicar el código fuente debido a que éste tenía demasiados errores de programación -recién empezaba con .NET :-D.

Para mi sorpresa, al parecer este control fue utilizado por un gran número de personas y desde ese entonces he recibido varias consultas sobre el funcionamiento del mismo, algunas simples y otras imposibles de hacer por la forma como se hacía la exportación.

Categories
CSRF Fresqui PHP Utilidades WordPress

Tus Visitantes + Fresqui + WordPress = Posible IPod

Desde que Fresqui -un servicio parecido a Digg o Menéame- anunció que iba a pagar a los usuarios que envíen contenidos de calidad y colaboren con la comunidad de Fresqui, seguramente muchos de los usuarios de ésta se han puesto "las pilas" para participar más.

Categories
PHP Quiz Seguridad XSS

Implicancias de la codificación del documento – Parte 2

¿Qué condiciones se deben dar para que el siguiente código sea vulnerable a XSS?

html:

<html>

<head>
    <title>Test</title>   
</head>

<body>

<?php echo htmlentities($_GET['mensaje'], ENT_COMPAT, 'utf-8'); ?>

</body>

</html>

Nota: la codificación del documento que contiene el código mostrado es UTF-8.

Actualización: Explotar el código mostrado

Se deben cumplir las siguientes condiciones para que la vulnerabilidad se haga evidente:

  • El atacante envía como valor de la variable mensaje un texto en formato UTF-7 u otro.
  • El servidor web donde se aloja la página no envía una codificación por defecto (Ej. que no haya una directiva AddDefaultCharset en Apache)
  • Que el navegador use la misma codificación que el texto enviado. En Firefox se debe cambiar manualmente, con lo cual se complica el ataque, sin embargo, si en Internet Explorer la selección automática de codificación está habilitada, entonces la página que contiene el código ya es vulnerable, caso contrario, estamos en el mismo caso que Firefox.

He puesto el código en http://test.buayacorp.com/xss.php para efectos de prueba (para ver el mensaje, usen IE con la mencionada opción habilitada - Ver->Codificación->Selección Automática).

Solución

Poner de manera explícita la codificación adecuada, a través de cabeceras HTTP o del elemento meta.