Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Sinedra en 27 Enero 2011, 16:26 pm



Título: Bloquear acceso directo a paginas
Publicado por: Sinedra en 27 Enero 2011, 16:26 pm
Tengo una web que incluye un par de archivos...

ejemplo:

index.php?id=4 ---> incluye a pagina4/index.php

lo que quiero restringir es el acceso directo a pagina4/index.php y que solo se pueda acceder por medio de index.php?id=4

como se hace en php?

Saludos!


Título: Re: Bloquear acceso directo a paginas
Publicado por: .mokk. en 27 Enero 2011, 16:48 pm
Nose si sea esto lo que buscas pero al principio del index.php podrias colocar esto:

Código
  1. if(!isset($_GET[id])){
  2. die("No tienes acceso aqui! bye (:");
  3. }



Título: Re: Bloquear acceso directo a paginas
Publicado por: bomba1990 en 27 Enero 2011, 21:16 pm
bueno yo el otro dia estuve viendo el codigo de joomla y para ellos lograr lo que tu quieres hicieron esto,

pusieron en la principal define() que se usa para definir una constante. y en cada pagina usaban un defined que averigua si esa contante a definida.

en joomla en el index.php sale esto:
Código
  1. // Set flag that this is a parent file
  2. define( '_JEXEC', 1 );

y en todos los modulos sale esto
Código
  1. // no direct access
  2. defined('_JEXEC') or die('Restricted access');


Título: Re: Bloquear acceso directo a paginas
Publicado por: Sinedra en 28 Enero 2011, 19:58 pm
Nose si sea esto lo que buscas pero al principio del index.php podrias colocar esto:

Código
  1. if(!isset($_GET[id])){
  2. die("No tienes acceso aqui! bye (:");
  3. }



habia pensado este mismo sistema, el problema es que si pones paginaprohibida.php?id=cualquiercosa se muestra el contenido igual xd FAIL jaja entonces no se como se podra hacer mas seguro...

bueno yo el otro dia estuve viendo el codigo de joomla y para ellos lograr lo que tu quieres hicieron esto,

pusieron en la principal define() que se usa para definir una constante. y en cada pagina usaban un defined que averigua si esa contante a definida.

en joomla en el index.php sale esto:
Código
  1. // Set flag that this is a parent file
  2. define( '_JEXEC', 1 );

y en todos los modulos sale esto
Código
  1. // no direct access
  2. defined('_JEXEC') or die('Restricted access');

se ve interesante... aunque no entiendo muy bien como funciona.. me podrias explicar?


Título: Re: Bloquear acceso directo a paginas
Publicado por: bomba1990 en 31 Enero 2011, 00:18 am
es sencillo en la pagina principal se coloca.

Código
  1. define( '_JEXEC', 1 );// esto define una constante

y cada una de las paginas que deberia salir interna se coloca

Código
  1. defined('_JEXEC') or die('Restricted access');//comprueba si la constante esta definida