Foros del Web » Programando para Internet » PHP »

Impedir acceso a web desde el navegador

Estas en el tema de Impedir acceso a web desde el navegador en el foro de PHP en Foros del Web. Hola! Con unos amigos estamos haciendo una web. Dentro de esta web, estamos combinando JOOMLA y Wordpress. La página principal está en Joomla. El problema ...
  #1 (permalink)  
Antiguo 21/09/2008, 11:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 27
Antigüedad: 15 años, 7 meses
Puntos: 0
Impedir acceso a web desde el navegador

Hola!

Con unos amigos estamos haciendo una web. Dentro de esta web, estamos combinando JOOMLA y Wordpress. La página principal está en Joomla.

El problema que tenemos es que, queremos que a las páginas creadas en Wordpress sólo se pueda acceder a través de un enlace en la página principal (joomla). Esto es, que cuando alguien escriba la dirección en el navegador, le aparezca un error o algo.

Es eso posible?

Este es el esquema:

Página principal: midominio.com/home/ (Joomla)

Páginas secundarias: midominio.com/XXXX/ (Wordpress)


Gracias desde ya!
  #2 (permalink)  
Antiguo 21/09/2008, 11:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Impedir acceso a web desde el navegador

No será 100% fiable, pero te servirá:
Código PHP:
if($_SERVER['HTTP_REFERER'] != 'LA_URL' ) {
    echo 
"Error"// o lo que quieras

Prueba, mueve, intenta. Si tienes problemas mencionalos.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 21/09/2008, 12:08
 
Fecha de Ingreso: septiembre-2008
Mensajes: 27
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Impedir acceso a web desde el navegador

Muchas gracias por la respuesta. Sólo una duda, dónde coloco ese código? en el index de la instalación de Wordpress?

Saludos!
  #4 (permalink)  
Antiguo 21/09/2008, 12:12
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Impedir acceso a web desde el navegador

Colocalo en la pagina donde no quieres que se acceda directamente.
No he trabajado con Wordpress asi que no puedo decirte con exactitud.
Sino guardalo en una pagina aparte, y haz un include en cada pagina de Wordpress a la pagina con ese script.

Por cierto, agregale un exit; para que no ejecute el codigo debajo:

Código PHP:
<?php

if($_SERVER['HTTP_REFERER'] != 'LA_URL' ) {
    echo 
"Error"// o lo que quieras
    
exit;
}

?>
  #5 (permalink)  
Antiguo 21/09/2008, 12:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 27
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Impedir acceso a web desde el navegador

Me funciona perfecto!, pero...una cosa....tampoco puedo entrar cuando hago click en el link desde la página principal.

Alguna sugerencia??

Gracias!
  #6 (permalink)  
Antiguo 21/09/2008, 12:32
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Impedir acceso a web desde el navegador

Donde dice:
if($_SERVER['HTTP_REFERER'] != 'LA_URL' ) {
Cambiaste 'LA URL'?
  #7 (permalink)  
Antiguo 21/09/2008, 12:47
 
Fecha de Ingreso: septiembre-2008
Mensajes: 27
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Impedir acceso a web desde el navegador

Sí...donde dice LA_URL puse la URL de mi página, a la que no quiero que se pueda acceder directamente.
  #8 (permalink)  
Antiguo 21/09/2008, 12:57
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Impedir acceso a web desde el navegador

Cita:
Iniciado por Ronruby Ver Mensaje
Por cierto, agregale un exit; para que no ejecute el codigo debajo
Cierto ...

HTTP_REFERER hace referencia a la página desde donde se hizo la petición, esta podría variar. Esperaba lo vieras por tu cuenta... Anímate a experimentar, a leer la documentación.

Pero bueno, con strpos() igual podrás mejorarlo.
www.php.net/strpos

Código PHP:
<?php
if(strpos($_SERVER['HTTP_REFERER'], 'LA_URL' )) {
    echo 
"Error"// o lo que quieras
    
exit;
}
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 21/09/2008, 13:05
 
Fecha de Ingreso: septiembre-2008
Mensajes: 27
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Impedir acceso a web desde el navegador

OK, gracias. En todo caso, no es de flojera, nunca se me hubiera ocurrido dónde buscar en realidad. No se mucho de PHP, esa es la verdad.

Muchas gracias.
  #10 (permalink)  
Antiguo 24/09/2008, 02:29
 
Fecha de Ingreso: septiembre-2008
Mensajes: 27
Antigüedad: 15 años, 7 meses
Puntos: 0
Impedir acceso a web desde el navegador + Uso de sesiones

Hola!

Con unos amigos estamos haciendo una web. Dentro de esta web, estamos combinando JOOMLA y Wordpress. La página principal está en Joomla.

El problema que tenemos es que, queremos que a las páginas creadas en Wordpress sólo se pueda acceder a través de un enlace en la página principal (joomla). Esto es, que cuando alguien escriba la dirección en el navegador, le aparezca un error o algo.

Es eso posible?

Este es el esquema:

Página principal: midominio.com/home/ (Joomla)

Páginas secundarias: midominio.com/XXXX/ (Wordpress)


Pregunté esto mismo antes y me dijeron que podría usar SERVER['HTTP_REFERER'] (http://www.forosdelweb.com/f18/impedir-acceso-web-desde-navegador-626834/#post2587631) pero no me sirve.

Por otra parte se que podría usar sesiones, pero ahí es donde empieza el problema.

1) la instalación de Joomla y Wordpress usan 2 bases de datos distintas.

2) Joomla ya tiene un sistema de autentificación de usuarios con privilegios para cada nivel.

3) no se nada al respecto.


Entonces las preguntas son: Aún considerando los puntos 1 y 2, se podría hacer lo que necesito? o deben al menos compartir la base de datos?

Además, por dónde podría empezar para ver cómo implementarlo (de ser posible)? No pretendo que me manden la solución en un paquete de regalo, pero ni siquiera se donde empezar y de PHP casi no se nada. Además, no tengo mucho tiempo como para poner a leerme el manual completo de PHP.

Es más, si alguien realmente sabe cómo hacerlo pero considera que debe cobrar, podríamos conversarlo, ya que -insisto- no tengo todo el tiempo que se requeriría para leerme toda la documentación necesaria de PHP como para entender algo que claramente no es muy simple.


Saludos y gracias a quienes me puedan ayudar!!!
  #11 (permalink)  
Antiguo 24/09/2008, 09:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Impedir acceso a web desde el navegador

Temas unidos, por favor no dupliques temas.
  #12 (permalink)  
Antiguo 24/09/2008, 11:30
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Impedir acceso a web desde el navegador + Uso de sesiones

Cita:
Iniciado por electioneering Ver Mensaje
El problema que tenemos es que, queremos que a las páginas creadas en Wordpress sólo se pueda acceder a través de un enlace en la página principal (joomla). Esto es, que cuando alguien escriba la dirección en el navegador, le aparezca un error o algo.

Es eso posible?
Ya lo había dicho: no 100% fiable, pero sí; es posible.


Cita:
Iniciado por electioneering Ver Mensaje
Pregunté esto mismo antes y me dijeron que podría usar SERVER['HTTP_REFERER'] (http://www.forosdelweb.com/f18/impedir-acceso-web-desde-navegador-626834/#post258763) pero no me sirve.
"no me sirve" ... ¿y por qué?. No dices nada con ello.

Veamos. $_SERVER['HTTP_REFERER'] es una variable superglobal de PHP, su valor será la referencia desde donde se esta haciendo la petición de la página. Osea, que si yo accedo a tu página desde google --por ejemplo-- dicho valor tendría que ser algo como
http://www.google.com/search?q=algo&agunos=valores&mas

Entonces, puedes hacer uso de este valor. Si provendría de tu sitio en joomla (a lo que, según tu explicación, quieres restringir), dicho valor tendría que ser algo como http://tusitio/home/y/quizá/mas/valores, entonces podrías solo comprobar que en dicho valor contenga la URL de tu sitio en joomla (resaltado en negrita), para ello puedes valerte de strpos() que busca una cadena (tu URL) dentro de otra (el REFERER).

Ahora, el valor de dicha variable no es 100% fiable porque es información entregada por el cliente, por el navegador... pero serán raros los casos donde dicho valor no sea correcto; en general, el "usuario común" no tiene ni idea de qué sea eso, solo los más avanzados podrían utilizar algún sistema para navegar de manera oculta --¿paranóicos?-- y/o alguien que pueda intencionalmente modificarlo. En general, y para que no te compliques, puedes usarlo ...

Sí es necesario tener nociones de PHP (sino ¿cómo?) y animarse a consultar la documentación oficial:
www.php.net/reserved.variables.server
www.php.net/strpos

... y entonces .. ¿por qué no te sirve? ...

Cita:
Iniciado por electioneering Ver Mensaje
Por otra parte se que podría usar sesiones, pero ahí es donde empieza el problema.

1) la instalación de Joomla y Wordpress usan 2 bases de datos distintas.

2) Joomla ya tiene un sistema de autentificación de usuarios con privilegios para cada nivel.

3) no se nada al respecto.


Entonces las preguntas son: Aún considerando los puntos 1 y 2, se podría hacer lo que necesito? o deben al menos compartir la base de datos?
O lo que dijiste inicialmente no es lo que en realidad quieres (es probable), o estás muy perdido en este nuevo camino. Esto será para cuando un usuario comparta sesión entre ambas aplicaciones, nada que ver con restringir el acceso por URL.

De Noruega eh ... Saludos
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 24/09/2008 a las 11:38 Razón: Elimino enlaces de ejemplo
  #13 (permalink)  
Antiguo 29/09/2008, 14:02
 
Fecha de Ingreso: septiembre-2008
Mensajes: 27
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Impedir acceso a web desde el navegador

Hola!

Primero que todo, gracias por responder nuevamente. Disculpa que no haya respondido antes, pero no había estado en casa.

Ahora sí me funciona!!!!!!!!!!!!!!!...no se que pasaba, cuando lo copié y pegué desde aquí no me funcionó...cambié HTTP_REFERER por otro valor, y después volví a escribir HTTP_REFERER y me funcionó...no se qué habrá sido.

Pero ahora tengo otro problema

Resulta que en la página enlazada, tengo un link HOME, que te lleva a la página principal. Pero después de usar el código php de que estamos hablando, no me funciona, o sea, recibo Error igual que si proveniera desde otro lugar. Entiendo que tiene que ver con la condición del código que sólo acepta entrar desde la dirección que especifiqué, pero....hay alguna forma de agregar la propia URL del sitio como una URL válida para entrar tb?


Muchas gracias!!!
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 19:22.