Foros del Web » Programando para Internet » PHP »

Http_referer

Estas en el tema de Http_referer en el foro de PHP en Foros del Web. Hola tengo un sistema de noticias que funciona de acuerdo a un identificador en la base de datos, por ejemplo yo veo las noticias de ...
  #1 (permalink)  
Antiguo 12/01/2005, 08:11
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Exclamación Http_referer

Hola tengo un sistema de noticias que funciona de acuerdo a un identificador en la base de datos, por ejemplo yo veo las noticias de esta forma

http://localhost/noticias/ver_noticia.php?id=2345

Ok mi problema es que si el usuario modifica en la barra de direcciones el parámetro: id=2345 y coloca otro puede ver otras noticias, y este finalmente no utiliza un esquema de navegación que tengo predefinido, bueno no sé si ya algún usuario lo ha hecho pero tengo que preveer este problema si así se puede llamar.

Como podría resolver mi duda?, el usuario no puede cambiar el parametro id=numero desde la barra de direcciones, al contrario el obligatoriamente tiene que navegar desde la estructura de mi sitio de noticias.

yo estaba mirando este código del autenticator de cluster

Código PHP:
if ($_SERVER['HTTP_REFERER'] == ""){
die (
"Error cod.:1 - Acceso incorrecto!");
exit;

Pero no me funciona del todo bien ya que a pesar de que llamo a la noticia desde otro link me deniega la visualización.
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #2 (permalink)  
Antiguo 12/01/2005, 08:19
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
Es una buena herramienta dejar que el usuario navege como quiera... muchas veces he leido mas noticias de un sitio modificando el ID que entrando por la descripcion de las noticias...

Puedes hacer que ese ID sea encriptado con md5();.. no creo que el usuario logre cambiar toda la linea de md5 a otra que justo sea un ID... (hablamos de usuarios normales).

En fin...
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 12/01/2005, 08:31
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

HTTP_REFERER se envia a voluntad del navegador y de los elementos intermedios. Un firewall puede decidir no enviar ese dato. Y los enlaces javascript en algunos navegadores (de la marca M$) tampoco envian esa cabecera.

Ademas, te buscas broncas con los buscadores, ya que sus robots de indexacion nunca envian referer.
Cita:
Ok mi problema es que si el usuario modifica en la barra de direcciones el parámetro: id=2345 y coloca otro puede ver otras noticias, y este finalmente no utiliza un esquema de navegación que tengo predefinido, bueno no sé si ya algún usuario lo ha hecho pero tengo que preveer este problema si así se puede llamar.
¿Es un problema que el usuario no use es sistema de navegacion de un sistema de noticias? Yo no lo veo asi.

Pero si de todas formas es un problema para ti, investiga sobre "flujo de trabajo". Se suele usar cuando el usuario si o si tiene que seguir una serie de pasos, y no puede saltar al medio. Por ejemplo, en los mega super formularios que estan divididos en varias paginas, no puedes permitir que intente llegar a una parte del medio.

Nunca he implementado uno asi, sobre todo por el problema de los buscadores. Ahora mismo no se me ocurre ninguna razon por la que que un usaurio modifique la url directamente sea pecado mortal. Y menos si a la url final puede llegar por el sistema de navegacion.

Y se me olvidaba otra razon: existen usuarios de internet que tienen la mania de añadir a favoritos la url concreta, o incluso poner links en sus paginas o en foros a las noticias concretas. ¿Quieres perder a los visitantes que llegan asi?

Saludos.

PD: Doy por supuesto que son todas paginas publicas, sin restriccion de acceso por claves o de pago.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 12/01/2005, 08:45
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Hola Josemi, me falto aclarar que mi sistema de noticias no es para todo el mundo, generalmente cuando se publican las noticias de hoy por ejemplo, un encargado del sistema extrae un reporte en html y lo envia manualmente a una lista de correo de mas o menos 100 destinatarios, lo que yo no quiero es que esto se convierta en una página abierta a cualquier usuario y esto lo prevengo de cierta manera ya que un usuario que intenta esa opción no puede ver opciones como total de noticias que hay en la base de datos, categorias disponibles entre otros.

Lo que quiero prevenir es que un usuario copie el url y lo envie a un mail de un desconocido y otro lo vea y esto se vuelva un ciclo y ocupen el servidor sin necesidad.
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #5 (permalink)  
Antiguo 13/01/2005, 06:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Lo que quiero prevenir es que un usuario copie el url y lo envie a un mail de un desconocido y otro lo vea y esto se vuelva un ciclo y ocupen el servidor sin necesidad
Usa sesiones minimo para controlar que llegan desde tu "index" u otra página de entrada a tu sistema .. De hecho con sesiones puedes ir "registrando" por donde pasa tu usuario y a su vez validar si pasa por donde tiene que hacerlo.

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.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:46.