Bug en la web de SGAE recomendar web

Publicado por | 13/01/2010 | en Curiosidades

La web de la SGAE tiene otro bug, desde hace unos días me he dado cuenta, que podemos recomendar cualquier web que deseemos, como si viniese recomendada oficialmente por la SGAE.  El mecanismo es sencillo: Por ejemplo,  esta misma noticia

Si pulsamos sobre “Enviar a un amigo” se abrirá un pop-up para rellenar un formulario. La URL por defecto tiene un estilo similar a este http://www.sgae.es/jsp/email-es.jsp?link=http://www.sgae.es/tipology/convoc/item/es/629_672.html&lang=es

Si nos fijamos, después de la palabra ?link=, aparece la URL de la noticia recomendada. Si copiamos toda la URL en una nueva venta y cambiamos la zona del link= tal que así.

http://www.sgae.es/jsp/email-es.jsp?link=http://www.blablabla.com

Estaremos recomendando la web www.blablabla.com, y  al receptor le llegará un mensaje de la dirección pepito@sgae.es (si así lo hemos especificado en el campo “Tu email”). Sí… también se puede enviar en nombre de la SGAE! con su dominio sgae.es

SGAE Sociedad General de Autores y Editores
Pepito le recomienda que visite esta página:
http://www.blablabla.com
(c) Copyright Sociedad General de Autores y Editores (SGAE)
Fernando VI, 4 28004 Madrid
Tel: +34 913 499 550 / 913 499 500

El bug se aprovecha de una vulnerabilidad Cross-Site Scripting (XSS)

PD: No hagáis mal uso de él xD

Redireccionar a web de mantenimiento con htaccess

Publicado por | 07/01/2010 | en Apache

Siempre que nos veamos obligados hacer cambios en nuestra web, antes deberíamos redireccionar a nuestros visitantes a una página de mantenimiento, mientras terminemos con los cambios.

Para hacerlo utilizaremos el fichero .htaccess de nuestro servidor web (esto no funciona en IIS). Y para que esta redirección no nos moleste a nosotros, vamos a diferenciar nuestra ip. Por lo que todos los visitantes que no tengan la ip que indiquemos (la nuestra), serán redireccionados a la página de mantenimiento, mientras que nosotros veremos la página correctamente.

Agregamos las siguientes lineas al archivo .htaccess

1
2
3
4
5
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !/WebMantenimiento.html$
RewriteCond %{REMOTE_HOST} !^777\.777\.777\.777
RewriteRule $ /WebMantenimiento.html [R=302,L]

Debemos cambiar los 777 por nuestra ip (escapando los puntos (.) con la barra invertida (\)).

Visto en: notasweb.com

Borrar datos MySQL de 3 formas

Publicado por | 07/01/2010 | en MySQL

Existen diferentes maneras de borrar datos en MySQL. Puede ser que solo te interese borrar un determinado registro (fila), toda una tabla incluida su estructura, o que quieras conservar la estructura y solo necesites vaciar su contenido. Os pongo las tres formas que utilizo habitualmente.

Sentencia para borrar un registro:

1
DELETE FROM tbl_name WHERE campo='valor'

Sentencia para vaciar toda una tabla:

1
TRUNCATE tbl_name

Sentencia para eliminar una tabla:

1
DROP TABLE tbl_name

Seguir leyendo…

Saber el último valor auto_increment

Publicado por | 07/01/2010 | en MySQL

¿Alguna vez te has preguntado como puedes saber el el último valor de un campo auto_increment en mysql o en php?. Te adelanto que no basta con ordenar la tabla y extraer el valor del último registro insertado, porque quizás se han eliminado 50 filas y el valor que obtendrías sería incorrecto. Te presento dos formas de conseguirlo:

Utilizando MYSQL

1
2
INSERT INTO tbl_name (campo1, campo2) VALUES ('valor1','valor2')
SELECT last_insert_id();

Seguir leyendo…

Resetear auto_increment en MySQL

Publicado por | 04/01/2010 | en MySQL

Seguro que eres de las personas que hace mil y una pruebas con la base de datos antes de pasarla a producción!. Si es así, probablemente tengas campos auto_increment que hayan aumentado de valor.  A continuación, una manera sencilla de resetear el campo auto_increment de una tabla en MySQL:

1
ALTER TABLE tbl_name AUTO_INCREMENT = 1

Otra forma de borrar y resetar a la vez es usar la función TRUNCATE de MySQL, esta función limpia todas las filas (registros)  y si tiene un campo autoincremental también lo  resetea.

1
TRUNCATE TABLE tbl_name