SlideShare ist ein Scribd-Unternehmen logo
1 von 17
implementar la seguridad en el acceso a datos usando PHP
Descripción de las distintas páginas que forman el sistema de autentificación y su funcionamiento, basado en usuario y contraseña. 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.
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
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. 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.
Página que muestra el formulario donde el visitante debe introducir su nombre de usuario y contraseña, necesarios para acceder a la aplicación segura. 				Para realizar esta página, utilizaremos HTML básico, excepto en una comprobación que nos permitirá saber si se accede al formulario de nuevo por no haber introducido correctamente el usuario y contraseña, pues, en ese caso, habría que mostrar un cartelito informando que el usuario o la contraseña no son válidos.
El código sería el siguiente: <html> <head> <title>Autentificación PHP</title> </head> <body> <h1>Autentificación PHP</h1> <formaction="control.php" method="POST"> <tablealign="center" width="225" cellspacing="2" cellpadding="2" border="0"> <tr> <tdcolspan="2" align="center" <?if ($_GET["errorusuario"]=="si"){?> bgcolor=red><spanstyle="color:ffffff"><b>Datos incorrectos</b></span> <?}else{?> bgcolor=#cccccc>Introduce tu clave de acceso <?}?></td> </tr> <tr> <tdalign="right">USER:</td> <td><input type="Text" name="usuario" size="8" maxlength="50"></td> </tr> <tr> <tdalign="right">PASSWD:</td> <td><input type="password" name="contrasena" size="8" maxlength="50"></td> </tr> <tr> <tdcolspan="2" align="center"><input type="Submit" value="ENTRAR"></td> </tr> </table> </form> </body> </html>
Control de datos con el formulario de autentificación en PHP 			Después de la comprobación podrán pasar dos cosas: Si los datos son correctos, definirá una variables de sesión que servirá para saber que ese visitante ha sido validado correctamente y tiene permiso para acceder a la aplicación. Además re direccionará al visitante a la página de la aplicación restringida. Si el usuario/contraseña no era correcto, se envía al navegador a la página de inicio pasando la variable error usuario=si, que indica que ha habido un error en la autentificación. El código se puede ver a continuación:
<? //vemos si el usuario y contraseña es váildoif ($_POST["usuario"]=="miguel" && $_POST["contrasena"]=="qwerty"){     //usuario y contraseña válidos     //defino una sesion y guardo datos     session_start();     $_SESSION["autentificado"]= "SI";     header ("Location: aplicacion.php"); }else {     //si no existe le mando otra vez a la portada     header("Location: index.php?errorusuario=si"); } ?>
Capa de seguridad. 			Este archivo, en nuestro caso llamado seguridad.php, se encargará de dotar seguridad a toda la aplicación de acceso restringido. La técnica que vamos a utilizar es incluirlo al principio de todas las páginas que queramos que permitan un acceso restringido. El módulo de seguridad, incluido al principio de cada archivo, realizará las comprobaciones oportunas y actuará permitiendo ver el archivo o denegando su visualización dependiendo de dichas comprobaciones.
<? //Inicio la sesión session_start(); //COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO if ($_SESSION["autentificado"] != "SI") {     //si no existe, envio a la página de autentificacion    header("Location: index.php");     //ademas salgo de este script     exit(); } ?>
Archivos de la aplicación con acceso restringido en PHP. 	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.
<?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>
Salir de la aplicación segura en PHP 				La seguridad de la aplicación se basa en la definición de unas variables de sesión que se consultan en cada página segura. Puede ocurrir que el usuario entre en la aplicación e inicie una sesión y que se marche de la aplicación segura sin cerrar la sesión, con lo que quedaría abierta para que cualquier otra persona pueda acceder a la aplicación volviendo por el historial de páginas del navegador.
	El archivo en concreto lo único que hace es terminar la sesión asociada a su acceso. Podemos ver el código a continuación. <? session_start(); session_destroy(); ?> <html> <head> <title>Has salido!!</title> </head> <body> Gracias por tu acceso <br> <br> <a href="index.php">Formulario de autentificación</a> </body> </html>
Diferentes forma de cerras sesión en PHP 	Cómo cerrar una sesión autenticada correctamente, por inactividad o por cierre del navegador por parte del usuario. 	Veremos como cerrar la sesión del usuario cuando:  El tiempo de inactividad del usuario supere "x" cantidad de tiempo (segundos, minutos, etc...).  El usuario cierre el navegador y abandone por completo nuestro sitio.
Cierre de sesión por inactividad en PHP: módulo de control de datos 	Ahora veremos que tan sencillo es. Solo tendremos que: Crear una nueva sesión que guarde una fecha y hora  Comprobar en nuestra capa de seguridad el tiempo transcurrido entre la sesión guardada y la hora actual  Actualizar la sesión o destruirla según corresponda
Esto lo haremos en el momento que el usuario ingresa al sistema con sus datos de acceso.  <? //vemos si el usuario y contraseña es váildoif ($_POST["usuario"]=="miguel" && $_POST["contrasena"]=="qwerty"){     //usuario y contraseña válidos     session_name("loginUsuario");     //asigno un nombre a la sesión para poder guardar diferentes datos    session_start();     // inicio la sesión     $_SESSION["autentificado"]= "SI";     //defino la sesión que demuestra que el usuario está autorizado     $_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s");     //defino la fecha y hora de inicio de sesión en formato aaaa-mm-ddhh:mm:ss    header ("Location: aplicacion.php"); }else {     //si no existe le mando otra vez a la portada     header("Location: index.php?errorusuario=si"); } ?>

Weitere ähnliche Inhalte

Ähnlich wie Implementar seguridad PHP usuario contraseña

Sesiones en-php1536
Sesiones en-php1536Sesiones en-php1536
Sesiones en-php1536xib32
 
Validación o autenticación de usuarios en php
Validación o autenticación de usuarios en phpValidación o autenticación de usuarios en php
Validación o autenticación de usuarios en phpJess_ccs_rock
 
Validación o autenticación de usuarios en php
Validación o autenticación de usuarios en phpValidación o autenticación de usuarios en php
Validación o autenticación de usuarios en phpJess_ccs_rock
 
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Raul Fraile
 
Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5Esteban Saavedra
 
Google Analitycs para las webs de los campings
Google Analitycs para las webs de los campingsGoogle Analitycs para las webs de los campings
Google Analitycs para las webs de los campingsLe Metayer Deckx William
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NETpabloesp
 
Trabajando con sesiones en PHP
Trabajando con sesiones en PHPTrabajando con sesiones en PHP
Trabajando con sesiones en PHPEliot Ramos
 
Especialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetEspecialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetMoisés Cid Deza
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Andrés Iturralde
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.comoctabio
 
Acegi Security System for Spring
Acegi Security System for SpringAcegi Security System for Spring
Acegi Security System for SpringCarlos Sanchez
 
Portal cautivo usando Easy Hotspot
Portal cautivo usando Easy HotspotPortal cautivo usando Easy Hotspot
Portal cautivo usando Easy HotspotCésar Lorenzo
 

Ähnlich wie Implementar seguridad PHP usuario contraseña (20)

Sesiones en-php1536
Sesiones en-php1536Sesiones en-php1536
Sesiones en-php1536
 
Sesiones en Php
Sesiones en  PhpSesiones en  Php
Sesiones en Php
 
Validación o autenticación de usuarios en php
Validación o autenticación de usuarios en phpValidación o autenticación de usuarios en php
Validación o autenticación de usuarios en php
 
Validación o autenticación de usuarios en php
Validación o autenticación de usuarios en phpValidación o autenticación de usuarios en php
Validación o autenticación de usuarios en php
 
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
 
Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5
 
Google Analitycs para las webs de los campings
Google Analitycs para las webs de los campingsGoogle Analitycs para las webs de los campings
Google Analitycs para las webs de los campings
 
Introducción a ASP.NET
Introducción a ASP.NETIntroducción a ASP.NET
Introducción a ASP.NET
 
Seguridad en PHP (es)
Seguridad en PHP (es)Seguridad en PHP (es)
Seguridad en PHP (es)
 
Trabajando con sesiones en PHP
Trabajando con sesiones en PHPTrabajando con sesiones en PHP
Trabajando con sesiones en PHP
 
Especialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.NetEspecialista Web J13: Introducción a Asp.Net
Especialista Web J13: Introducción a Asp.Net
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
 
PHP
PHPPHP
PHP
 
tutorial de slide.com
tutorial de slide.comtutorial de slide.com
tutorial de slide.com
 
PHP
PHPPHP
PHP
 
Html investigacion
Html investigacionHtml investigacion
Html investigacion
 
Html investigacion
Html investigacionHtml investigacion
Html investigacion
 
Acegi Security System for Spring
Acegi Security System for SpringAcegi Security System for Spring
Acegi Security System for Spring
 
Portal cautivo usando Easy Hotspot
Portal cautivo usando Easy HotspotPortal cautivo usando Easy Hotspot
Portal cautivo usando Easy Hotspot
 
Robo desesionesfinal
Robo desesionesfinalRobo desesionesfinal
Robo desesionesfinal
 

Mehr von Helmilpa

El sistema operativo reactOs
El sistema operativo reactOsEl sistema operativo reactOs
El sistema operativo reactOsHelmilpa
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAHelmilpa
 
La enseñanza por el sistema modular metropolitano
La enseñanza por el sistema modular   metropolitanoLa enseñanza por el sistema modular   metropolitano
La enseñanza por el sistema modular metropolitanoHelmilpa
 
Microprocesadores
MicroprocesadoresMicroprocesadores
MicroprocesadoresHelmilpa
 

Mehr von Helmilpa (6)

Captcha
CaptchaCaptcha
Captcha
 
El sistema operativo reactOs
El sistema operativo reactOsEl sistema operativo reactOs
El sistema operativo reactOs
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
La enseñanza por el sistema modular metropolitano
La enseñanza por el sistema modular   metropolitanoLa enseñanza por el sistema modular   metropolitano
La enseñanza por el sistema modular metropolitano
 
Korakora
KorakoraKorakora
Korakora
 
Microprocesadores
MicroprocesadoresMicroprocesadores
Microprocesadores
 

Kürzlich hochgeladen

CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 

Kürzlich hochgeladen (20)

CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 

Implementar seguridad PHP usuario contraseña

  • 1. implementar la seguridad en el acceso a datos usando PHP
  • 2. Descripción de las distintas páginas que forman el sistema de autentificación y su funcionamiento, basado en usuario y contraseña. 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.
  • 3. 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
  • 4. 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. 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.
  • 5. Página que muestra el formulario donde el visitante debe introducir su nombre de usuario y contraseña, necesarios para acceder a la aplicación segura. Para realizar esta página, utilizaremos HTML básico, excepto en una comprobación que nos permitirá saber si se accede al formulario de nuevo por no haber introducido correctamente el usuario y contraseña, pues, en ese caso, habría que mostrar un cartelito informando que el usuario o la contraseña no son válidos.
  • 6. El código sería el siguiente: <html> <head> <title>Autentificación PHP</title> </head> <body> <h1>Autentificación PHP</h1> <formaction="control.php" method="POST"> <tablealign="center" width="225" cellspacing="2" cellpadding="2" border="0"> <tr> <tdcolspan="2" align="center" <?if ($_GET["errorusuario"]=="si"){?> bgcolor=red><spanstyle="color:ffffff"><b>Datos incorrectos</b></span> <?}else{?> bgcolor=#cccccc>Introduce tu clave de acceso <?}?></td> </tr> <tr> <tdalign="right">USER:</td> <td><input type="Text" name="usuario" size="8" maxlength="50"></td> </tr> <tr> <tdalign="right">PASSWD:</td> <td><input type="password" name="contrasena" size="8" maxlength="50"></td> </tr> <tr> <tdcolspan="2" align="center"><input type="Submit" value="ENTRAR"></td> </tr> </table> </form> </body> </html>
  • 7. Control de datos con el formulario de autentificación en PHP Después de la comprobación podrán pasar dos cosas: Si los datos son correctos, definirá una variables de sesión que servirá para saber que ese visitante ha sido validado correctamente y tiene permiso para acceder a la aplicación. Además re direccionará al visitante a la página de la aplicación restringida. Si el usuario/contraseña no era correcto, se envía al navegador a la página de inicio pasando la variable error usuario=si, que indica que ha habido un error en la autentificación. El código se puede ver a continuación:
  • 8. <? //vemos si el usuario y contraseña es váildoif ($_POST["usuario"]=="miguel" && $_POST["contrasena"]=="qwerty"){     //usuario y contraseña válidos     //defino una sesion y guardo datos     session_start();     $_SESSION["autentificado"]= "SI";     header ("Location: aplicacion.php"); }else {     //si no existe le mando otra vez a la portada     header("Location: index.php?errorusuario=si"); } ?>
  • 9. Capa de seguridad. Este archivo, en nuestro caso llamado seguridad.php, se encargará de dotar seguridad a toda la aplicación de acceso restringido. La técnica que vamos a utilizar es incluirlo al principio de todas las páginas que queramos que permitan un acceso restringido. El módulo de seguridad, incluido al principio de cada archivo, realizará las comprobaciones oportunas y actuará permitiendo ver el archivo o denegando su visualización dependiendo de dichas comprobaciones.
  • 10. <? //Inicio la sesión session_start(); //COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO if ($_SESSION["autentificado"] != "SI") {     //si no existe, envio a la página de autentificacion    header("Location: index.php");     //ademas salgo de este script     exit(); } ?>
  • 11. Archivos de la aplicación con acceso restringido en PHP. 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.
  • 12. <?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>
  • 13. Salir de la aplicación segura en PHP La seguridad de la aplicación se basa en la definición de unas variables de sesión que se consultan en cada página segura. Puede ocurrir que el usuario entre en la aplicación e inicie una sesión y que se marche de la aplicación segura sin cerrar la sesión, con lo que quedaría abierta para que cualquier otra persona pueda acceder a la aplicación volviendo por el historial de páginas del navegador.
  • 14. El archivo en concreto lo único que hace es terminar la sesión asociada a su acceso. Podemos ver el código a continuación. <? session_start(); session_destroy(); ?> <html> <head> <title>Has salido!!</title> </head> <body> Gracias por tu acceso <br> <br> <a href="index.php">Formulario de autentificación</a> </body> </html>
  • 15. Diferentes forma de cerras sesión en PHP Cómo cerrar una sesión autenticada correctamente, por inactividad o por cierre del navegador por parte del usuario. Veremos como cerrar la sesión del usuario cuando: El tiempo de inactividad del usuario supere "x" cantidad de tiempo (segundos, minutos, etc...). El usuario cierre el navegador y abandone por completo nuestro sitio.
  • 16. Cierre de sesión por inactividad en PHP: módulo de control de datos Ahora veremos que tan sencillo es. Solo tendremos que: Crear una nueva sesión que guarde una fecha y hora Comprobar en nuestra capa de seguridad el tiempo transcurrido entre la sesión guardada y la hora actual Actualizar la sesión o destruirla según corresponda
  • 17. Esto lo haremos en el momento que el usuario ingresa al sistema con sus datos de acceso. <? //vemos si el usuario y contraseña es váildoif ($_POST["usuario"]=="miguel" && $_POST["contrasena"]=="qwerty"){     //usuario y contraseña válidos     session_name("loginUsuario");     //asigno un nombre a la sesión para poder guardar diferentes datos    session_start();     // inicio la sesión     $_SESSION["autentificado"]= "SI";     //defino la sesión que demuestra que el usuario está autorizado     $_SESSION["ultimoAcceso"]= date("Y-n-j H:i:s");     //defino la fecha y hora de inicio de sesión en formato aaaa-mm-ddhh:mm:ss    header ("Location: aplicacion.php"); }else {     //si no existe le mando otra vez a la portada     header("Location: index.php?errorusuario=si"); } ?>