Foros del Web » Programando para Internet » PHP »

Validar $_SERVER['HTTP_REFERER']

Estas en el tema de Validar $_SERVER['HTTP_REFERER'] en el foro de PHP en Foros del Web. Yo tengo la siguiente duda, necesito saber si relamente hay una forma de validar el referer ya que tengo entendido que en algunos casos se ...
  #1 (permalink)  
Antiguo 22/02/2006, 17:24
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 13 años, 5 meses
Puntos: 4
Validar $_SERVER['HTTP_REFERER']

Yo tengo la siguiente duda, necesito saber si relamente hay una forma de validar el referer ya que tengo entendido que en algunos casos se puede filtrar y puede no existir. El objetivo es que no me manden variables por POST que no vengan de mi dominio, yo hice el siguiente script teniendo en cuenta que el referer puede no existir, pero de este modo no es 100% seguro ya que si yo guardo una pagina html, la modifico y la envío a otra pagina desde la vista previa de mi editor no va a existir un referer pero sin embargo estoy "hackeando" por así decirlo..

este es mi codigo:

Código:
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST' AND $_SERVER['HTTP_REFERER'])
{
	$referer_parts = parse_url($_SERVER['HTTP_REFERER']);
	if (strpos($referer_parts['host'], '.midominio.com') === false)
	{
		die('No se permiten variables enviadas por POST  de este dominio!!');
	}
}
Lo logico es que si me llegan variables por POST y NO existe $_SERVER['HTTP_REFERER'] es extraño, o no?

Espero sugerencias..
Saludos
__________________
Internet Explorer SuckS
Download FireFox
  #2 (permalink)  
Antiguo 22/02/2006, 17:34
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
$_SERVER['HTTP_REFERER'] Esto no es nada confiable, como vos dijiste muchas veces no aparece (pero no es raro) y sobre todo es que (creo que para FireFox) existe como un modulo que permite enviar cualquier referer, osea yo lo configuro para que el referer siempre sea Google, y no importa si navego por dentro de toda tu web mi navegador siempre va a mandar como referer a Google, se entiende?

Saludos.
  #3 (permalink)  
Antiguo 22/02/2006, 17:35
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
Lo logico es que si me llegan variables por POST y NO existe $_SERVER['HTTP_REFERER'] es extraño, o no?
No entendí la pregunta.

Saludos
  #4 (permalink)  
Antiguo 22/02/2006, 17:47
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 13 años, 5 meses
Puntos: 4
bueno justamente este problema me surgio por el tema de las famosas extensiones de firefox que te "hackean" toda la pagina por asi decirlo... Yo me baje la "web developer toolbar" que tiene de todo y me sorprendí al ver que se puede modificar casi toda la pagina haciendo un click, como por ejemplo deshabilitar campos de formulario, eliminar maxlength y convertir selects a inputs text. Me parece una estupidez total que dejen hacer eso, ya no se puede confiar en nada que venga del cliente, incluso si la pagina la hiciste vos porque te la cambian toda!!
Bueno y ahora esto del referer ya es lo ultimo... hay q validar todo desde php, el javascript ni sirve para validar ya.

bueno gracias =

ah, me acorde mas, tambien esta la extension urlparams que permite modificar las variables GET y POST y hasta editar el html completo de la pagina
__________________
Internet Explorer SuckS
Download FireFox

Última edición por SiR.CARAJ0DIDA; 22/02/2006 a las 18:07
  #5 (permalink)  
Antiguo 22/02/2006, 18:35
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Puedes propagar algún valor en variables de sesión para ayudarte con la tarea de identificar si se ha pasado por determinada página de tu sitio.
  #6 (permalink)  
Antiguo 23/02/2006, 05:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por jpinedo
Puedes propagar algún valor en variables de sesión para ayudarte con la tarea de identificar si se ha pasado por determinada página de tu sitio.
Así es .. si mencionas que el proceso pasa o ha de pasar por otro script de tu misma aplicación (que corre en ese mismo servidor) .. lo mejor es usar sesiones.

Validar un "HTTP_REFERER" no es nada seguro, de hecho nadie te asegura que ese valor lo puedas obtener: algunos firewalls, antivirus, navegadores, proxys y ciertas formas de trabajar con tus páginas (abriendo ventanas .. etc) no entregan esa información de la "página referida". Y tampoco te asegura que ese dato no esté "adulterado" .. por qué como es un dato que se genera en la petición HTTP (por cabeceras) .. se puede fácilmente reportar ese dato como otro (cambiado). En definitiva no es un dato para confiar en el.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 15:35.