Seguridad: Uso de la variable HTTP_REFERER

 

Hoy un cliente me preguntó si era seguro el uso de la variable HTTP_REFERER. Me mandó su código de prueba para pedir mi opinión.

EL código es el siguiente.

<HTML>
<HEAD>
</HEAD>
<BODY>
<% if request.servervariables("HTTP_REFERER")= "http://164.77.11.29/Prueba/pp.htm" then %>
<P>Si tiene acceso</P>
<% else%>
<P>No tiene acceso</P>
<% end if%>
</BODY>
</HTML>

Es muy cómodo usar HTTP_REFERER para preguntar desde donde viene un cliente Web. Ojo que dije preguntar y no validar, porque en rigor es el cliente Web que declara desde donde viene. No es un dato confiable.

Alguien con algunas habilidades de programación puede hacer un script que cambie el valor de está variable, y el servidor Web no tiene como validar si el valor es real o no. Está es la técnica conocida como SPOOF.

Está validación puede ser usada en aplicaciones triviales pero no en aplicaciones WEB Seguras.

El siguiente script es un ejemplo de cómo engañar al servidor Web.

 

% telnet your.website.example.com 80
  GET / HTTP/1.1
  Host: your.website.example.com
  Referer: http://www.google.com/
  Connection: close
  (contents will be displayed here)

En conclusión no se debe confiar en las variables que entrega el cliente: campos de formularios o http headers. Incluso las cookies deben ser consideradas como información no confiable, en aplicaciones Web reales.</P


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s