Archivos de la aplicación con acceso restringido en PHP

  • Por
Mostraremos un ejemplo del código de una de las páginas web que formaría la aplicación segura.
La aplicación con acceso restringido se realizará como cualquier otra aplicación de PHP, con la salvedad de que, a todos los archivos que queramos proteger, habrá que incluirles al principio la capa de seguridad, representada por el archivo seguridad.php.

Como decía, todo en el archivo de la aplicación se realizará como cualquier otro archivo de PHP, es decir, con sólo incluir el módulo de seguridad, el archivo ya tendrá el acceso restringido y todo lo demás lo haremos de manera transparente a este estado de seguridad.

El código de una página segura sería el siguiente:

<?include ("seguridad.php");?>
<html>
<head>
<title>Aplicación segura</title>
</head>
<body>
<h1>Si estás aquí es que te has autentificado</h1>
<br>
----
<br>
Aplicación segura
<br>
----
<br>
<br>
<a href="salir.php">Salir</a>
</body>
</html>


Importante: El include del archivo seguridad.php se ha de realizar en la primera línea del archivo PHP de la aplicación. Si no lo hacemos en la primera línea o si escribimos texto en la página antes de incluir la capa de seguridad, el script podría fallar y hacer que no funcione la aplicación o que sea menos segura. Este efecto se produce porque no se puede escribir en la página nada si se desea hacer una redirección con PHP (función header) y si se escribe algo, la redirección no podrá funcionar.


Un detalle que hemos incluido es un enlace para salir de la aplicación, que se dirige a el archivo salir.php. Explicaremos el sentido de esta acción y el script de salir.php en el siguiente capítulo.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Miguel Angel Alvarez

21/1/2003
Como ya se ha comentado en este artículo, los includes de seguridad deben colocarse al principio del archivo php, en la primera línea de código. Esto es debido a que utilizan algunas funciones que escriben en las cabeceras del HTTP para mandar información al cliente (concretamente la función header).

Si se escribe en la página web antes de llamar a esos includes, aunque sea un simple salto de línea, se cerrará la posibilidad de escribir en las cabeceras de HTTP, pues sólo se puede escribir en las cabeceras si no se ha empezado a escribir en el cuerpo.

hebo

30/1/2005
Me salen letras chinas es muy raro , en aplicacion.php :
&#3360;&#15370;&#29800;&#27757;&#8254;&#2573;&#26684;&#24933;&#15972;&#3360;&#15370;&#26996;&#27764;&#15973;&#28737;&#26988;&#24931;&#26979;&#28403;&#29472;&#26469;&#29301;&#15457;&#29743;&#29801;&#25964;&#8254;&#2573;&#12092;&#25960;&#25697;&#8254;&#2573;&#25148;&#25711;&#15993;&#3360;&#15370;&#12648;&#21310;&#8297;&#29541;&#57716;&#8307;&#29025;&#60789;&#25888;&#8307;&#30065;&#8293;&#25972;&#26656;&#29537;&#24864;&#29813;&#28261;&#26996;&#26982;&#24931;&#28516;&#12092;&#12648;&#8254;&#2573;&#25148;&#15986;&#3360;&#11530;&#11565;&#8237;&#2573;&#25148;&#15986;&#3360;&#16650;&#27760;&#25449;&#25441;&#62313;&#8302;&#25971;&#30055;&#24946;&#3360;&#15370;&#29282;&#8254;&#2573;&#11565;&#11565;&#3360;&#15370;&#29282;&#8254;&#2573;&#25148;&#15986;&#3360;&#15370;&#8289;&#29288;&#26213;&#8765;&#24947;&#26988;&#11890;&#26736;&#8816;&#21310;&#27745;&#29289;&#12092;&#15969;&#3360;&#15370;&#25135;&#25711;&#15993;&#3360;&#15370;&#26671;&#28020;&#15980;&#3360;

Y no se... Y en el codigo fuente me sale el script seguridad.php

Luis Caceres

26/9/2005
Saludos a todos; he puesto en operación todo el código aquí expuesto en mi página web y se me ha presentado la siguiente dificultad: cuando escribo el URL completo de la página que supuestamente esta "segura", ingreso sin nningun problema, como si la línea de código <?include ("seguridad.php");?> no fuera leida, pero cuando escribo un usuario y una contraseña "incorrectas" este include cumple con su función, no entiendo porque ocurre esto.
Si puedan darme una mano les estaré agradecido.

Pedro

18/3/2006
Alguien me puede decir porque el exit(); no me detiene el procesamiento de la pagina que quiero asegurar???

Mariana

10/6/2009
magnifico
gracias Miguel! he estado 2 dias para poder resolver el problema que tenia! gracias a tus explicaciones esta todo resuelto!

Emiliano

10/7/2009
Uso de include()
La función include() de fallar (verbigracia: no se encuentra el archivo de seguridad.php en el servidor) produce una alerta de tipo Warning en PHP y ¡EL SCRIPT SE SIGUE EJECUTANDO!.

Por eso en este caso es muy conveniente usar la función require(), pues esta función produce un Fatal Error, colgando el procesamiento de la página, tal como se comenta en el manual de PHP.

Entonces, si falla la inclusión de require() el parseador de PHP detiene el scritp y no se ejecuta.

Muy bueno el tutorial, y en aras de la sencillez se convierte en muy didáctico.

Jessica

10/8/2009
Agradecimiento
Este articulo me ha ayudado mucho, necesitaba un ejemplo como este desde hace tiempo, que fuese facil de entender y de modificar.
Gracias muchachos

marie

21/8/2009
no me funciona al agregar el script seguridad
cuando agrego este script se devuelve a la pagina index y no me deja ver el archivo, pegue tal cual tus codigos, este mismo problema tengo al hacerlo con dreamweaver automatico conectandose a una base de datos... no soy programadora, que mas puedo hacer? entiendo mucho y hago muchos php siguiendo instrucciones y me resultan pero aqui ya no se, estoy deseperada debo hacer una pagina con acceso.

Alberto

18/6/2011
Problema
Hola que tal, te comento que la explicación que das sobre el proceso de autentificación es muy buena, sin embargo en varios lugares me he topado con el mismo problema.
Si tu ingresas el url de la página protegida efectivamente eres redireccionado al formulario de ingreso; ahora cuando tu ingresas a la pagina protegida ingresando un usuario y clave correctos, obviamente podrás ver la misma; el problema radica en que una vez que ingresaste los datos correctos, si cierras el navegador, lo vuelves a abrir e ingresas el url de la pagina protegida, SI puedes ingresar.
Esto no sería problema si alguien ingresa a tu pagina desde su computador personal, pero si lo hace en uno publico corres el riesgo de dejar una puerta abierta a desconocidos.

Sería conveniente agregar alguna parte de código que cierre la sesión cuando tu cierras el navegador o pestaña.

Esa es el problema que me tiene un poco intranquilo, gracias por la ayuda