comparte el articulo 

Seguridad en el registro de usuarios y el manejo de sesiones con PHP (primera parte)

Actualizado el 13/09/2013 < > 0 Comentarios

Resumen: Recomendaciones para mejorar la seguridad en el registro de usuarios y el manejo de sesiones PHP.

En la actualidad la seguridad es uno de los aspectos más relevantes del desarrollo de sistemas, sobre todo en ambiente web, miles de personas por hora pueden visitar tu sitio dependiendo de su popularidad, y todas ellas pueden tener acceso a información que quizás tu no quieras compartir.

Está claro que si tienes información de carácter confidencial no es buena idea mantenerla en el mismo servidor web que el de tu aplicación, pero si se trata de alguna información que debemos compartir con nuestros usuarios pero de forma limitada debemos tomar medidas.

Existen muchas personas que se plantean y preguntan si realmente es necesaria la seguridad en un sitio web , muchos de nosotros en algunos casos tomamos este aspecto como algo irrelevante, y lo dejamos a lo último, o incluso no lo tomamos en cuenta.

Es claro que no todos los datos son blancos de protección, la seguridad es algo que se debe aplicar a la medida, para la información que lo amerite y de la forma adecuada, no es necesario invertir una gran cantidad de horas frente al monitor planeando y codificando formas de proteger nuestro sitio, simplemente basta con saber que información proteger y de qué forma, y que mejor que esto sea automatizado.

Seguridad para aplicaciones web con PHP

PHP tiende a ser un lenguaje donde la seguridad no es muy tocada por sus desarrolladores, esto se debe en gran medida a la novatez de muchos de ellos, puesto que PHP es uno de sus primeros lenguajes y decidieron aprenderlo precisamente por su sencillez y facilidad.

En la actualidad si manejamos un framework de PHP la seguridad es casi un aspecto implícito, pero muchos de nosotros no empezamos directamente desarrollando en un framework, de hecho esto no es recomendable, nuestras primeras aplicaciones por lo general cuentan con código embebido y con conexiones a bases de datos hechas sin algún tipo de encapsulamiento.

Manejo de sesiones en PHP

Para ayudar a proteger esta información que desplegamos, o para restringir el uso de alguno de nuestros sistemas de inserción o eliminación de datos, podemos utilizar lo que se conoce como “manejo de sesiones”, que en PHP resulta ser una tarea bastante sencilla de realizar.

Aclaro que este tutorial es para principiantes en PHP, si te interesan aspectos más avanzados trataré de escribir algo en un futuro pero por el momento esto es para iniciar en el mundo de las sesiones a todos aquellos que deseen aplicarlas en su sitio.

Como requisitos previos para realizar lo que a continuación explicare, debemos tener Apache, PHP5 y MySQL instalados en nuestro servidor o computadora personal, en caso de que no desees instalarlos y configurarlos por separado puedes recurrir a XAMPP o WAMP en el caso de que estés trabajando con Windows, a MAMP en el caso de MAC o a la paquetería LAMP si estas en Linux, aunque si ya estás con Linux te recomendaría más hacer la instalación con apt-get install de cada elemento por separado.

Creamos la base de datos

El primer paso de siempre es crear nuestra base de datos donde guardaremos los usuarios. Cuando estamos trabajando con MySQL de manera local generalmente el host de nuestra aplicación es “localhost”, el usuario y la contraseña variará según la configuración que dimos al instalar MySQL. Para manejar las Bases de datos podemos utilizar administradores como phpMyAdmin (incluido en XAMPP), Navicat, MySQL query browser o manejarlo desde consola.

Creamos la tabla para los usuarios

Una vez creada la base de datos (CREATE DATABASE mipagina) debemos crear una tabla dentro de ella llamada usuarios, aunque algunos manejan otros nombres no relacionados con sesiones para distraer o engañar, lo anterior sería de la siguiente manera:

USE mipagina;
CREATE TABLE ‘usuarios’ (
‘ID’ INT(25) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
‘Nombre’ VARCHAR(65) NOT NULL ,
‘Password’ VARCHAR(32) NOT NULL ,
‘Email’ VARCHAR(255) NOT NULL
);

Este primer código básicamente lo que hace es escoger la base de datos “mipagina” donde crearemos la tabla usuarios que tendrá 4 campos, el primero llamo ID que será un número entero de longitud 25, que no puede ser nulo, se autoincrementará (es decir cada vez que se cree un registro nuevo se le aumentará 1 número) y es la clave primaria, lo cual indica que es el campo que identificara como diferente al resto y servirá en caso de que queramos relacionarlo con otras tablas como Foreign key, el campo nombre, password y email son prácticamente lo mismo variando únicamente la longitud.

Creamos el archivo de conexión a la DB

Una vez creada la tabla debemos crear nuestro primer archivo PHP, el cual se utilizará cada vez que queramos hacer una conexión a la base de datos, para no tener que estar repitiendo el mismo pedazo de código una y otra vez lo guardamos en un archivo PHP y lo incluimos mediante include en el código de la página.

Nombraremos al archivo db.php y contendrá lo siguiente:

<?php
session_start();
/* Inicia la sesión, función utilizada para mantener la sesión y variables de sesión para que no se pierdan sus valores al navegar a través de las páginas del sitio */
$host = "localhost"; // normalmente es “localhost” pero puede variar
$nombre = "mipagina"; //nombre de la base de datos que estas usando para el proyecto
$usuario = "root"; // nombre del usuario con el que te conectas a esa base de datos
$password = "qwerty"; // la password de dicho usuario
mysql_connect($host, $usuario, $password) or die("MySQL Error: " . mysql_error());
/* Conecta con la base de datos utilizando los atributos dados, en caso de falla imprimirá un error en nuestro navegador  */
mysql_select_db($nombre) or die("MySQL Error: " . mysql_error());
/* Selecciona la base de datos  */
?>

Integramos el PHP de conexión con el HTML

Ya creado nuestro archivo de conexión a la base de datos debemos incluir en nuestro index.php o en la página donde queramos hacer la conexión, esto se logra mediante el siguiente código:

<?php include "bd.php"; ?>

Creamos nuestra página de inicio con el código HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sesiones</title>
</head>
<body>
<div id="principal">
</div>
</body>
</html>

Ahora dentro de nuestro div “principal” debemos incluir el código PHP que vamos a desarrollar para determinar qué mostrar. Si el usuario ya inició sesión vamos a mostrar su nombre, si no ha iniciado entonces mostraremos un form con dos campos para que ingrese su usuario y su contraseña y claro la opción para “Registrarse” en caso de que no cuente con una clave todavía.

<?php
if(!empty($_SESSION['inicio']) && !empty($_SESSION['usuario']))
{
// Mostrará el mensaje con su nombre
}
elseif(!empty($_POST['usuario']) && !empty($_POST['password']))
{
// Realizar el proceso para que el usuario inicie sesión
}
else
{
// Mostrar el form para ingresar y la opción para registrarse
}
?>

En la segunda parte de este tutorial veremos algunos detalles más sobre la seguridad en el registro de usuarios y el manejo de sesiones PHP.

Publicado el 27/07/2010, última actualización 13/09/2013.

Licencia: Contenido exclusivo de LaWebera.es. Prohibida su copia.

Autor: ISC Daniel Ernesto Navarro Herrera

URL: LaWebera.es :: Diseño Paginas Web

(Subir al texto)

Añadir Comentario

* Campos obligatorios

Meneame Bitacoras