sesiones en php
DESCRIPTION
Seguridad en PHP con el uso de Sesiones Ing. Fabian Guerrero MedinaTRANSCRIPT
![Page 1: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/1.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
1
FACULTAD DE INGENIERÍAEscuela Profesional de Ingeniería Informática y de Sistemas
![Page 2: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/2.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
2
SEGURIDAD EN PHP USO DE SESIONESSEGURIDAD EN PHP USO DE SESIONES
![Page 3: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/3.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
3
Introducción
Qué son las sesiones?
Las sesiones son un mecanismo basado en cookies que permiten identificar a los usuarios que acceden a un sitio Web, de esta manera almacenar información referente a sus transacciones.
![Page 4: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/4.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
4
Empezar una Sesión
Para empezar a trabajar una sesión en PHP lo primero es iniciarla la sesión, para ello tenemos dos caminos:
1.1. session_start()session_start()
2.2. session_register(‘mi_var’)session_register(‘mi_var’)
![Page 5: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/5.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
5
Empezar una Sesión – session_start()
Usaremos como ejemplo para iniciar una sesión con la función session_start()session_start(), esta función debe estar ANTES de cualquier otro código.
<?php session_start(); sentencias PHP;
…?>
- Esta función en caso de que el visitante no tenga una sesión la crea y si ya tiene una sesión continúa en ella.
![Page 6: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/6.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
6
Empezar una Sesión – session_start()
SID (Session ID)
PHP para identificar una sesión, lo realiza a través de un número SID. Esto se le proporciona al cliente para identificarse de forma exclusiva.
Este SID siempre se crea al usar la función session_start().
Si se usa session_register(). El valor del SID se almacena en la variable global PHPSESSID.
![Page 7: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/7.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
7
ID de una Sesión – session_id()
Se usa para proporcionar (leer) el número ID de sesión que se ha inicializado.
También se usa esta función para cambiar el ID de la sesión actual.
echo ("TU ID: ". session_id()session_id() );
![Page 8: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/8.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
8
Almacenar Información – $_SESSION
Es un arreglo (matriz) asociativa que contiene las variables de sesión disponibles en la aplicación web actual.
$_SESSION[“autorizado"] = "OK"
![Page 9: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/9.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
9
Función: session_unset
Elimina todas la variables de la sesión.
![Page 10: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/10.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
10
Función: session_destroy
Destruir la sesión
![Page 11: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/11.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
11
Ejemplo: 01
![Page 12: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/12.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
12
Ejemplo: 01- index.php
<?phpsession_start();
?>
<p>BIENVENIDOS</p>
<form name="form1" method="post" action="pagina2.php"> <p>Nombre <input name="txt_nombre" type="text" id="txt_nombre">
<?php$_SESSION["ESTADO"] = "OK"
?> </p> <p> <input type="submit" name="Submit" value="Enviar"> </p></form>
Crear Sesión
Crear Variable de Sesión
![Page 13: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/13.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
13
Ejemplo: 01 – pagina2.html
<?phpsession_start();
if ($_SESSION["ESTADO"] != "OK") header("Location: index.php");
?>
<?phpecho ("Hola ".$_POST["txt_nombre"]);
?>
![Page 14: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/14.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
14
Ejemplo: 02 – index.php
![Page 15: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/15.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
15
Ejemplo: 02 – index.php
<form action="control.php" method="POST"> <tr> <td colspan="2" align="center"
<?PHP if ($_GET["errorusuario"]=="si"){?> bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
<?PHP }else{?>bgcolor=#cccccc>Introduce tu clave de acceso
<?PHP }?></td> </tr><br> <tr> <td align="right">Usuario:</td> <td><input type="Text" name="usuario" size="8" maxlength="50"></td> </tr><br> <tr> <td align="right">Clave:</td> <td><input type="password" name="contrasena" size="8" maxlength="50"></td> </tr><br> <tr> <td> <input type="Submit“ value="ENTRAR"></td> </tr></form>
![Page 16: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/16.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
16
Ejemplo: 02 – control.php
<?PHPsession_start();
//vemos si el usuario y contraseña es válido
if ($_POST["usuario"]==“coquito" && $_POST["contrasena"]=="123"){//usuario y contraseña válidos//Crear variable para la sesión
$_SESSION["autentificado"]= “1";$_SESSION["user"]= $_POST["usuario"];$_SESSION["pass"]= $_POST["contrasena"];header ("Location: aplicacion.php");
}else {//si no existe, ir a la Página de Inicioheader("Location: index.php?errorusuario=si");
}?>
![Page 17: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/17.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
17
Ejemplo: 02 – aplicacion.php
<?PHP include ("seguridad.php");?><html><head>
<title>Aplicación segura</title></head><body> <h1>Bienvenido <?PHP echo $_SESSION["user"];?></h1> <br> ---- <br> Usuario: <?PHP echo $_SESSION["user"];?> <br> ---- <br><br> <a href="otra.php">Continuar</a> </body></html>
![Page 18: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/18.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
18
Ejemplo: 02 – seguridad.php
<?PHP//Inicio la sesión
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado"] != “1") {//si no existe, se dirige a la Página de Inicio
header("Location: index.php");//salimos del script
exit();}?>
![Page 19: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/19.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
19
Ejemplo: 02 – otra.php
<?PHP include ("seguridad.php");?><html> <head>
<title>Empresa XYZ</title> </head>
<body> <h1>Bienvenido <?PHP echo $_SESSION["user"];?></h1> <br><hr> Sistema de la Empresa XYZ<hr><br> <br><br> <a href="salir.php">Salir</a> </body></html>
![Page 20: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/20.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
20
Ejemplo: 02 – salir.php
<?PHP session_start(); session_destroy();?><html> <head> <title>Fin de Sesión</title> </head>
<body> Gracias por tu acceso… <br><br> <a href="index.php">Ir a la Página de Inicio</a>
</body>
</html>
![Page 21: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/21.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
21
Ejemplo: 02
HomePage
index.php control.php
salir.phpotra.php
aplicacion.php
seguridad.php
Ingreso de DatosValidar Datos y Crear Variables de Sesion
Datos Erróneos
Datos OK
Página Segura
Página Segura
![Page 22: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/22.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
22
![Page 23: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/23.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
23
Redireccionar – header()
header("Location: http://www.php.net"); exit;
Cabecera "Location:"
header("Location: index.php?error=1");
![Page 24: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/24.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
24
Reutilizar Código – include()
Permite reutilizar porciones de código (script, o simple html) cuantas veces quieras. Es decir pega el código en donde es llamado.
![Page 25: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/25.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
25
![Page 26: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/26.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
26
Algoritmo – 01 index.php
<form method="post" action="comprobar.php"> <p>Leer <input name="txt_x" type="text" > </p> <p> <input type="submit" value="Enviar"> </p></form>
![Page 27: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/27.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
27
Algoritmo – 01 comprobar.php
<?php// Comprueba un Campo Ej. Nombre// Ambito: Solo String y Longitud 2..20
function comprobar_cadena_limite($nombre_usuario){ if (ereg("^[a-zA-Z\-_]{2,20}$", $nombre_usuario)) { return true; } else { return false; }} $vX = $_POST["txt_x"];if ( comprobar_cadena_limite($vX) ) echo ("OK");else echo ("Error");?>
![Page 28: Sesiones en Php](https://reader033.vdocuments.mx/reader033/viewer/2022061214/549a41eeac7959132e8b5b4c/html5/thumbnails/28.jpg)
Ingº CIP Fabian Guerrero Medina Master Web Developer
28
Algoritmo – 01
ereg("^[a-zA-Z\-_]{2,20}$", $nombre_usuario)
Función EREG: ejecuta el matching de una expresión regular.
Termino de Cadena
Variable a Evualar
Rango 2..20 de caracteres permitidos
Permitir estos caracteres especiales
Permitir solo letras
"^[a-zA-Z0-9\-_]{2,20}$"