Cuidado con el $_SERVER[‘HTTP_REFERER’]

Inauguro una serie de posts en los que iré explicando algunos consejos utiles para PHP que he ido aprendiendo con el tiempo.

En esta ocasión, os llamaré la atención sobre el uso indiscriminado que muchos programadores nóveles de PHP hacen de la variable de servidor $_SERVER[‘HTTP_REFERER’].
Muchos la utilizan (yo hace tiempo tambien lo hacía) para generar enlaces de “Volver atrás”, para redireccionar a la pagina de origen despues de la ejecución de un script, etc. El problema radica en que esta variable no siempre está disponible, ya sea por que el navegador no la envie, este siendo filtrada/bloqueada por el cortafuegos del usuario, u otras posibles causas. De hecho, en la manual oficial de PHP ya lo advierten:

… Este valor es definido por el agente de usuario. No todos los agentes de usuario lo definen, y algunos proveen la capacidad de modificar HTTP_REFERER como una característica del software. En resumen, no se puede confiar realmente en este valor…

Como consecuencia tenemos enlaces que no llevan a ningun sitio, redirecciones fallidas y otros errores derivados de su uso.
Visto todo esto, solo me queda recomendaros que no useis esta variable, o en cualquier caso programeis una función que compruebe su valor antes de usarla.

Anuncios