Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Funcionamiento del sistema de autentificación en PHP


Descripción de las distintas páginas que forman el sistema de autentificación y su funcionamiento, basado en usuario y contraseña.


19/12/02 - Un sistema de autentificación es un módulo de seguridad para asegurarnos de que el usuario que visita las páginas es quien dice ser. Por supuesto, sabiendo que ese usuario es conocido, podremos darle acceso a más aspectos de la página que si fuese un usuario desconocido. Pero supongo que, si estás leyendo este artículo, ya conocerás lo que es un sistema de autentificación y lo que deseas hacer es crear uno para tus páginas.

Referencia: Este manual requiere el conocimiento básico de PHP que, en caso de no tenerlo, se puede aprender en nuestro Manual de Programación en PHP.

Esquema de un sistema de autentificación

Vamos a empezar por definir un diagrama para realizar la autentificación de usuario en unas páginas web, que nos servirá para programar luego las páginas ajustándose al diagrama.

diagrama de funcionamiento de un sistema de autentificacion

En la imagen anterior podemos ver el diagrama, que empieza por la página donde se pide un usuario y contraseña para acceder a la aplicación de acceso restringido.

Los datos de autentificación (usuario y contraseña escritos en la página inicial) se envían a la página dibujada con línea de puntos, que se encarga de hacer una comprobación de dichos datos del usuario. Según los datos de autentificación, se redirecciona al navegador a la página de la aplicación restringida, en caso de que sean correctos, o a la página donde volver a escribir el usuario/contraseña, en caso de que sean incorrectos. Esta página la he dibujado con línea de puntos porque no es una página donde se pare el navegador para nada, sino que sólo es una página de paso que redirecciona a un sitio u otro dependiendo de los datos que reciba.

La aplicación de acceso restringido, aparte de mostrar las funcionalidades que queríamos proteger con usuario contraseña, debe de realizar unas comprobaciones de seguridad para saber si se ha pasado con éxito el proceso de autentificación o si se está intentando acceder de manera no permitida a esa página. Esta comprobación la he dibujado como una capa con color verde más oscuro sobre la página de la aplicación. Si no se satisface dicha comprobación (el usuario no se ha autentificado correctamente) se vuelve a la página donde escribir el usuario y la contraseña.

Este es el esquema básico, que espero que se entienda bien. Ahora, veamos algunas preguntas que podría hacerse el lector.

¿Por qué hacemos esta comprobación de seguridad dentro de la aplicación?
Podría ser que alguien conociese la URL de la aplicación de acceso restringido y la escribiese directamente sobre la barra de direcciones del explorador, así que hacemos esta comprobación para saber que realmente no se está accediendo sin pasar por la página que comprueba si el usuario/contraseña es correcto

¿Cómo sabemos que ciertamente se ha pasado por la página que comprueba los datos de autentificación?
Esta comprobación la podríamos hacer de varias maneras, así pues, depende de nuestro script de autentificación y el nivel de seguridad que tratemos de implementar. Un ejemplo simple podría ser crear una variable de sesión en la página que comprueba los datos, si es que eran correctos, y en capa se seguridad de las páginas de acceso restringido comprobaríamos si esa sesión está o no definida.

En caso de desear burlar la seguridad, ¿Cómo podría un usuario entrar a la página de la aplicación si no hay enlaces directos y para pasar a ella necesitamos que nos redireccione la página de comprobación del usuario/contraseña?
Pues de diversas maneras, para empezar, el historial de los ordenadores guarda las URL a las que se ha accedido y cualquier persona podría recuperar la URL de nuestra aplicación con acceso restringido. También se podría probar distintas URL que podríamos imaginarnos como posibles para la aplicación y esperar a acertar con el nombre de archivo en algún momento, incluso esta tarea se la podríamos encomendar a un programa para realizar muchas más pruebas. En cualquier caso, nuestra seguridad no se puede quedar en simplemente que los posibles intrusos no conozcan la dirección de la página.

Ver el sistema en funcionamiento

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 5 comentarios (Añadir)
+ 11 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Sistema de autentificación PHP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en PHP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 5 comentarios revisados

 Comentario de borja
08/9/03 
Adicionalmente siempre es conveniente que las zonas seguras se accedan a través de un servidor de conexion seguro.

Los detalles son complejos pero lo normal es que el servidor te redireccione a una versión segura (con el https) para que ningún ordenador entre medias pueda escuchar la contraseña con algún programa que mire las conexiones.

Tu comàñero de oficina o cibercafé puede tener un sistema instalado que grabe todos los datos de la red local. Si la contraseña se manda sin encriptar sólo tiene que gardarla ... y ya está.

 Comentario de macias
18/9/03 
Existe ya una pequeña aplicación basada en php con la que la puedes implementar en tu web rapidamente para el uso de zonas restringidas. Esta es la página para poder bajarlo: http://www.hotscripts.com/Detailed/15291.html

Este desarrollo es español por lo que saber manejarlo os va a resultar facil. Yo lo he utilizado en una página mia y funciona perfectamente.

 Comentario de Alexander Cervantes
26/11/03 
he probado este método de autentifiación de este interesante artículo, y, tengo el siguiente sin sabor, cuando uno ingresa con los datos correctos, la APLICACION SEGURA, no es tan segura puesto que si luego abrimos otras páginas o retrocedemos, y luego queremos regresar a la página regresa sin ningún control de autentificación; hay formas con javascript de evitar esto, pero hay alguna otra forma en php?

 Comentario de José Ramón Damas
29/12/04 
Este post es para responder el post de Alex Cervantes.
Quizás ya no te sea necesario, pero ...

Para corregir ese tipo de acceso "no seguro" cuando alguien abre otra pag o retrocede con el botón del navegador, tan sólo debemos destruir la variable de sesión al comienzo de la pag index.php y lo mismo tras incluir la capa de seguridad en la pag aplicacion.php.
Creo que con ésto corregimos ese detalle, desde PHP sin necesidad de Javascript.
Espero que le sea útil a alguien.
Un saludo.

 Comentario de Jose Manuel
26/2/05 
Hola,
Soy un programador todavia nobel, que le gustaría saber donde me podría bajar el código de estas paginas que se prueban.

Gracias un saludo

RESPUESTA

Para tener mas ejemplos y entender mejor esto de la programación en PHP puedes descargarte el manual de PHP y los talleres de PHP donde vienen bastantes ejemplos.

manual PHP

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 11 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Sistema de autentificación PHP
Categorías
+Scripts en PHP

Lectura recomendada
+ PHP

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia