Práctica 5: DBMS y registro de usuarios
Objetivo: Registrar usuarios en un sitio web utilizando un DBMS.
Desarrollo:
- Esta práctica se realizará de manera individual y utilizando UNIX ó alguna distribución de Linux.
- Para esta práctica se requiere instalar una servidor web (Apache), un lenguaje de servidor (PHP) y un DBMS (MySQL) por lo que para ello instalaremos XAMPP, el cual nos instala los 3 componentes anteriores. Aquí se encuentran las instrucciones para la instalación de XAMPP (Apache-PHP-MySQL).
- Una vez instalado el XAMPP, se requiere crear una base de datos para el manejo del proyecto que se propuso en la práctica anterior. Se requiere que se tenga como mínimo una tabla para usuarios, catálogo, carrito y ventas. El alumno debe plantear la estructura de la base de datos y de las tablas necesarias para el manejo de esta información.
- Para crear la base y las tablas se requiere conocer los comandos SQL en la terminal. Aquí se encuentra una lista de comandos básicos en MySQL.
- Para registrar un usuario debe contemplarse como mínimo los siguientes campos: nombre, direccion, email, rfc, curp, login y password.
- Dentro de la página principal del sistema, crear un enlace que se denomine "Registro de Usuarios" donde el usuario pueda ingresar sus datos al sistema y pueda ser registrado y guardado en la base de datos. Para hacer esta parte se requiere hacer un formulario en HTML y manejo de bases de datos en PHP, aqui se encuentra el código para preguntar los datos de un usuario y lo registra en una base de datos.
Seguridad: El sistema debe de contemplar las siguientes medidas de seguridad:
- Cuando se registre un usuario, se deberá validar cada entrada del usuario (nombre, direccion, email, rfc, curp, login y password) por medio de funciones JavaScript (evitar campos vacíos, duplicados ó inválidos). Aquí hay un ejemplo para la Validacion de Formularios utilizando una biblioteca de JavaScript (livevalidation).
- La siguiente validación (opcional) es usando las nuevas características para validar formularios con HTML 5. Aquí hay un ejemplo para la Validacion de Formularios utilizando HTML 5.
- Cuando se registre un usuario, se deberá implementar un sistema de captcha gráfico para evitar que programas registren usuarios de forma automática (no utilizar sistemas captcha online). Aquí hay un ejemplo para la Validacion de Formularios utilizando CAPTCHA (securimage).
- Para evitar que la información viaje como texto plano, hacer una función JavaScript (lado del cliente) que cifre cada dato que se envíe del cliente a servidor. Al llegar al servidor, descifrar cada dato que llega. Aquí hay un ejemplo para el Cifrado de datos de un formulario con JavaScript.
- Para evitar que el cliente desactive el JavaScript en su navegador y deshabilite nuestras protecciones, verificar nuevamente los datos que llegan al servidor por medio de funciones con PHP.
- Los otros datos del usuario (nombre, direccion, email, rfc, curp, login y password) deben grabarse dentro de la base de datos del proyecto del alumno dentro de la tabla "usuarios", y debe estar cifrada de manera simétrica. Aquí se encuentran los comandos de cifrado en MySQL.
- Por cada usuario que se registre en el sistema se debe crear un usuario de MySQL con privilegios restringidos. Aquí se encuentra el manual de comandos para el manejo de usuarios en MySQL. Esto significa que el login y password del usuario se deben de guardar en la base "mysql" tabla "user" y el password debe estar cifrado de manera asimétrica.
Revisión:
- Capturar los datos de un usuario y que queden almacenados en la base de datos de manera cifrada (fecha de revision: Viernes 26 de abril).