Foros del Web » Programando para Internet » PHP »

$_SERVER['HTTP_REFERER'] para validar acceso ?

Estas en el tema de $_SERVER['HTTP_REFERER'] para validar acceso ? en el foro de PHP en Foros del Web. Hola No estoy muy segura pero necesito impedir que mi página sea accedida pegando la url en la barra del navegador y uso esto: Código ...
  #1 (permalink)  
Antiguo 15/07/2005, 04:08
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
$_SERVER['HTTP_REFERER'] para validar acceso ?

Hola

No estoy muy segura pero necesito impedir que mi página sea accedida pegando la url en la barra del navegador y uso esto:
Código PHP:
<?php
$url 
explode("?",$_SERVER['HTTP_REFERER']);
$pag_refer=$url[0];
$redir=$pag_refer;
if (
$_SERVER['HTTP_REFERER'] == ""){
die (
"Error cod.:1 - Denied Access!");
exit;
}else
{
//EJECUTO MI SCRIPT
}
?>
En la práctica está funcionando pero quisiera que alguien me diga si es válido utilizar esto para lo que yo busco.
Y segundo... he leído a Cluster y a Jpinedo que dicen que la global $_SERVER['HTTP_REFERER'] no es 100 % confiable.
Entonces... ayuda por favor
  #2 (permalink)  
Antiguo 15/07/2005, 04:35
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 14 años
Puntos: 0
podrias probar los siguiente.

Código PHP:
if (!eregi('DE_DONDE_VIENES',$_SERVER['REQUEST_URI']))
    die(
"NO PUEDES ACCEDER DIRECTAMENTE"); 
De esta forma si accedes directamente no te permite seguir, tienes q venir de
DE_DONDE_VIENES?op=LO_Q_QUIERAS.

no se si ha qdado claro.

Un saludo.
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #3 (permalink)  
Antiguo 15/07/2005, 05:01
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Muchas gracias Spyn_ET

Soy un poco durazna, lo tengo que masticar pero dime... ese 'DE_DONDE_VIENES' debería poder ser alguna página (cualquiera) dentro de mi sitio, es decir, www.misitio.com ---> me sirve así ?

Me gusta esta opción más que usar variables de sesión porque estoy viendo que podrían iniciar la sesión y luego seguir usando mi script sin estar navegando en mi sitio (se entiende ? o hice un embrollo ?).
Cariños, gracias de nuevo
  #4 (permalink)  
Antiguo 15/07/2005, 05:25
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 14 años
Puntos: 0
xDDD

Creo entender q quieres hacer algo por el estilo, sino es asi, explicamelo :D

Llamar a una pagina asi:

modulo.php?op=pagina.php

y no poder llamarla directamente

pagina.php

Si es de esta forma, en mi ejemplo DE_DONDE_VIENES serie modulos.php y LO_Q_QUIERAS seria pagina.php
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #5 (permalink)  
Antiguo 15/07/2005, 05:51
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Me vas a matar pero no me sale

La pagina que quiero proteger es mipag.php... el link por el cual llegan es 'http://www.misitio.com/mipag.php?uid='.$_GET[uid]
Este link está en http://www.misitio.com?q.php?uid=number

Estoy intentando seguir tu ejemplo y puse esto en la cabecera de mipag.php:
Código PHP:
if (!eregi('http://www.misitio.com/mipag.php',$_SERVER['REQUEST_URI'])) die ("Denied Access!"); 
Pero evidente que estoy haciendo para el diablo porque me restringe el acceso siempre


Última edición por Suyta; 15/07/2005 a las 06:19
  #6 (permalink)  
Antiguo 15/07/2005, 06:18
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 14 años
Puntos: 0
Es q creo q no me explico :D

A ver segun lo q yo entendia era q querias hacer esto.

modulos.php
Código PHP:
(isset($_GET['op']))?$op=addslashes($_GET['op']):$op='';

(
file_exists($op))?include($op):die("No existe $op"); 
mipag.php
Código PHP:
if (!eregi('modulos.php',$_SERVER['REQUEST_URI'])) die ("Denied Access!"); 
De esta forma para acceder a mipag.php deberias hacerlo de esta forma.

http://www.misitio.com/modulos.php?op=mipag.php

Espero q te ayude. Un saludo
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #7 (permalink)  
Antiguo 15/07/2005, 06:25
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Spyn_ET así lo entiendo
Pero, olvidé aclarar lo principal: no puedo modificar modulos.php

Pero igual me vino muy bien esto, requete bien... MUCHISIMAS GRACIAS !
Cariños
  #8 (permalink)  
Antiguo 15/07/2005, 06:36
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
Cita:
Iniciado por Suyta
En la práctica está funcionando pero quisiera que alguien me diga si es válido utilizar esto para lo que yo busco.
Y segundo... he leído a Cluster y a Jpinedo que dicen que la global $_SERVER['HTTP_REFERER'] no es 100 % confiable.
En www.php.net también destacan que no es confiable... (no lo digo porque Cluster y Jpinedo no sean creibles =P)

http://ar2.php.net/reserved.variables
'HTTP_REFERER'
La dirección de la página (si la hay) la cual refirió al agente de usuario a la página actual. 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.
  #9 (permalink)  
Antiguo 15/07/2005, 06:49
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 12 años, 4 meses
Puntos: 1
Cita:
Iniciado por Suyta
Me vas a matar pero no me sale

La pagina que quiero proteger es mipag.php... el link por el cual llegan es 'http://www.misitio.com/mipag.php?uid='.$_GET[uid]
Este link está en http://www.misitio.com?q.php?uid=number

Estoy intentando seguir tu ejemplo y puse esto en la cabecera de mipag.php:
Código PHP:
if (!eregi('http://www.misitio.com/mipag.php',$_SERVER['REQUEST_URI'])) die ("Denied Access!"); 
Pero evidente que estoy haciendo para el diablo porque me restringe el acceso siempre

Código PHP:
if (!eregi('http://www.misitio.com/mipag.php',$_SERVER['REQUEST_URI'])) die ("Denied Access!"); 
Ademas es obvio que te salga acceso denegado siempre ya que estas validando en la pagina que vengan de esa misma pagina cosa que se cierra ciclicamente

ademas me imaguino que lo que tienes no es http://www.misitio.com?q.php?uid=number
sino http://www.misitio.com/q.php?uid=number
loque tienes que hacer es lo siguiente :


Código PHP:
if (!eregi('http://www.misitio.com/q.php',$_SERVER['REQUEST_URI'])) die ("Denied Access!"); 
este codigo ira en mipag.php
  #10 (permalink)  
Antiguo 15/07/2005, 07:23
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Muchas gracias Seppo, clarísimo y... arriba Boquita

Dopon seeeeee puse '?' en lugar de '/'
Hice tal cual tu ayuda y todo sigue igual ---> denied access por cualquier camino.

Tal vez esto sucede porque mi código php se carga en un iframe dentro de la página principal ? ---> por ahí hablo pavadas pero puede ser ?

A todos: gracias, gracias, gracias !!
  #11 (permalink)  
Antiguo 15/07/2005, 07:28
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 12 años, 4 meses
Puntos: 1
hmm
Código PHP:
if (!eregi('http://www.misitio.com/q.php',$_SERVER['REQUEST_URI'])) die ("Denied Access!"); 
reemplazalo con esto
Código PHP:

if (!eregi('http://www.misitio.com/q.php',$_SERVER['REQUEST_URI'])) {
echo 
$_SERVER['REQUEST_URI']."<br>";die ("Denied Access!");} 
Y me dices que salida muestra
  #12 (permalink)  
Antiguo 15/07/2005, 07:38
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Me dice:

/mipag.php?uid=5
Denied Access!

  #13 (permalink)  
Antiguo 15/07/2005, 08:00
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 12 años, 4 meses
Puntos: 1
ahh ya veo el detalle es que tu quieres pasar de una pagina a la otra pues ahi si ni con el uri porque a spy le funciona porque esta manejandolo en la misma pagina

pues podrias ademas del referer usar una especie de variable de bandera que almacenes en una session o en una cookie de forma que esa variable venga del otro lado y de ningun otro lugar

podrias pasar por aki y te das cuenta de que resultados dan varias de las variables predefinidas

http://www.forosdelweb.com/f18/recoger-direccion-url-del-navegador-315515/

o por acatambien
http://www.rinconastur.net/php/php12.php
  #14 (permalink)  
Antiguo 15/07/2005, 11:26
(Desactivado)
 
Fecha de Ingreso: septiembre-2004
Mensajes: 360
Antigüedad: 13 años, 2 meses
Puntos: 1
Dopon estoy revisando esos post... no los había encontrado por la mía... muchas gracias.
Ahora voy entendiendo más y mejor.
Un cariño grande para todos
  #15 (permalink)  
Antiguo 15/07/2005, 17:23
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 12 años, 4 meses
Puntos: 1
De nada wapa espero y logres cumplir con tu proposito espero te sirva esa informacion y si lo logras postealo aqui para saber como quedo y asi nosotros tambien aprender
  #16 (permalink)  
Antiguo 16/07/2005, 06:07
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
Hola Suyta:

Yo aún no comprendo del todo la forma en la que quieres restringir el acceso a la página.

En la pregunta original se puede ver que verificas que se haya seguido un enlace para llegar hasta el script. Pero yo podría hacer un pequeñísimo HTML en mi PC que contenga un enlace hacia tu página y listo, me dejará entrar.

Con lo que se te plantea después es otra cosa... ahí tratarás de comprobar que se ha pasado por determinada página antes de ver tu script. ¿Eso es lo que quieres?... ¿A quiénes quieres restringirle el acceso? o en todo caso ¿Qué debe hacer un usuari para tener acceso a ese script?

De cualquier forma yo optaría por hacer un seguimiento (y, de ser necesario, autentificación) a través de variables de sesión. Aunque tú dices esto, que no termino de entender:
Cita:
Iniciado por Suyta
Me gusta esta opción más que usar variables de sesión porque estoy viendo que podrían iniciar la sesión y luego seguir usando mi script sin estar navegando en mi sitio (se entiende ? o hice un embrollo ?).
Saludos
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 18:57.