Foros del Web » Programando para Internet » PHP »

Filtrar $_SERVER['HTTP_REFERER']?

Estas en el tema de Filtrar $_SERVER['HTTP_REFERER']? en el foro de PHP en Foros del Web. Hola, tengo una pregunta bastante simple de explicar, despues de que los usuarios se loguean en mi sitio me gustaría redireccionarlos al mismo lugar donde ...
  #1 (permalink)  
Antiguo 07/11/2011, 00:19
 
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Filtrar $_SERVER['HTTP_REFERER']?

Hola, tengo una pregunta bastante simple de explicar, despues de que los usuarios se loguean en mi sitio me gustaría redireccionarlos al mismo lugar donde estaban, entonces hago algo de este estilo:

Código PHP:
$url $_SERVER['HTTP_REFERER'];
// FILTRAR $url
header("Location: ".$url); 
La pregunta es qué medidas de filtrado debo tomar en $url para evitar que alguien con tiempo libre pueda hacer alguna maldad.

Saludos y gracias!
  #2 (permalink)  
Antiguo 07/11/2011, 02:00
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Filtrar $_SERVER['HTTP_REFERER']?

No creo que sea buena ídea utilizar HTTP_REFERER ya que muchos navegadores no envian el referer además de no ser muy seguro. Deberías utilizar sesiones para identificar desde donde han llegado a la página.
  #3 (permalink)  
Antiguo 07/11/2011, 12:14
 
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Filtrar $_SERVER['HTTP_REFERER']?

El problema es que tengo subdominios y se me complica usar sesiones (ya se como hacerlo pero no me funcionó muy bien, si tienen navegadores que no envian HTTP_REFERER, mala suerte para ellos, los redirijo a la página principal y tendrán que volver ellos mismos a donde estaban, y en cuanto a que no es seguro, justamente, quisiera saber que tipo de problemas puedo tener y como filtrar para que sea algo seguro.

Qué tipo de codigo pueden inyectar en header(Location:...) y generar algun problema? Pregunto para poder filtrarlo.

Saludos!
  #4 (permalink)  
Antiguo 07/11/2011, 12:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Filtrar $_SERVER['HTTP_REFERER']?

Yo solo usaría urlencode() ya que el código que te puedan pasar por header, al final es el mismo que si escribieran la URL directamente en el navegador.

Para usar las sesiones en subdominios, basta con que uses session_set_cookie_params, y en el parámetro de domain, pases un ".dominio.com" para que la sesión se reconozca en todos los subdominios.

Saludos.
  #5 (permalink)  
Antiguo 07/11/2011, 13:25
 
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Filtrar $_SERVER['HTTP_REFERER']?

urlencode() sirve para pasar cadenas con caracteres extraños como parámetros en url's, creo que no es lo que necesito, igualmente por lo que decis no hay mucho peligro en que controlen valores adentro de header()?
  #6 (permalink)  
Antiguo 07/11/2011, 13:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Filtrar $_SERVER['HTTP_REFERER']?

La ventaja es que así a la hora de hacer el redirect la URL queda limpia como debería de estar:
Código PHP:
Ver original
  1. header ('Location: ' . urlencode($_SERVER['HTTP_REFERRER']);

Esa es la idea que tu URL quede limpia y así cualquier carácter que no sea valido se reemplazara correctamente.

Saludos.
  #7 (permalink)  
Antiguo 07/11/2011, 14:41
 
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Filtrar $_SERVER['HTTP_REFERER']?

Si por ejemplo $_SERVER['HTTP_REFERRER'] contiene 'http://google.com/', la sentencia quedaría:

Código PHP:
header ('Location: http%3A%2F%2Fgoogle.com%2F'); 
Eso no hace una redirección correcta
  #8 (permalink)  
Antiguo 07/11/2011, 16:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Filtrar $_SERVER['HTTP_REFERER']?

Cierto, en ese caso no puedes hacer nada más que dejar el parámetro como viene, o intentar filtrarlo con parse_url para limpiarlo lo más posible.

Saludos.

Etiquetas: filtrar, usuarios
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.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:21.