Antivirusonline.es. Seguridad en la red.

Archive for abril, 2009

Ventajas Y Desventajas En La Autenticación De Usuarios

by on abr.22, 2009, under General

Autentificación HTTP con el módulo Apache.
VENTAJAS.
- Es una técnica de autenticación sencilla que utiliza la cabecera del protocolo HTTP. Con sus variables globales, $PHP_AUTH_USER, $PHP_AUTH_PW, para controlar el acceso restringido a una zona de nuestra aplicación web.
- Lo que hace esta restricción es mostrar una ventana pop up que solicita el ingreso de un usuario y su respectivo password y lo almacena en las variables globales: $PHP_AUTH_USER, $PHP_AUTH_PW, respectivamente, y estas las compara con los logins almacenados ya sea en un archivo plano de texto(.txt) o en una base datos como mysql.

DESVENTAJAS.
- Si tu aplicación web lo van a usar en lugares públicos, como cibercafes, en la universidad o entro lugar donde tengan activado algún firewall o bloqueados los POP UP, no podrías autenticarte, para ingresar a tu aplicación web.
- Si no se utiliza con algún tipo de encriptación suele ser fatal este tipo de autenticación.
- Dificultad en la administración de permisos.

Autenticación UTLIZANDO las consultas SQL

VENTAJAS
- Muy Práctico cuando guardamos nuestros usuarios en una base de datos
- Fácil administración de los usuarios.
- Scripts sencillos o de fácil comprensión para la autenticación de los usuarios.

DESVENTAJAS.

- Vigilar la inyección SQL en este tipo de autenticación, es muy común encontrar hackers que hacen un festín con este tipo de autenticaciones que no tomen sus medidas de seguridad respectiva para el ingreso de sus datos.
Autenticación UTILIZANDO EL METODO GET
VENTAJAS.
- Sencillez de utilizarlo en la cabecera del formulario.
- Visualiza el contenido de las variable en la URL del navegador
- Facilita la comprensión del envió y tratamiento de variables entre páginas de un mismo sitio.
DESVENTAJAS
- Definitivamente este es un método muy pero muy antiguo cuando recién se iniciaban las aplicaciones web dinámicas donde el user y password se envían por la url, y cualquier usuario podría copiar la url y enviar a otro usuario la dirección exacta para poder ingresar al área restringida.
- Un hacker podría guardar la dirección http exacta que permite el ingreso a la web restringida para ingresar cuando él desea y saltarlo como de una dirección url normal se tratase.

Autenticación UTILIZANDO EL METODO POST
VENTAJAS.
- El método POST es el más utilizado por los programadores de sitios web por la simplicidad de aplicarlo en el procesamiento de los formularios ya que utiliza la entrada STDIO (“standard input-output header” – cabecera estandar E/S, generado por la consola del teclado y monitor) ocultando las variables que se envían dentro del formulario para su posterior procesamiento.

DESVEN TAJAS.
- Por este método es posible un ataque XSS, que es un ataque que explota las vulnerabilidades de un sistema de validación de HTML por el método post, es un ataque que permite ejecutar código llamado scripting como VBscript o el de javascript, dentro de otro dominio, también se le conoce con el nombre de HTML INJECTION, afectan al servidor que los contiene, la información privada como las sesiones de usuario puede verse extraído por manos maliciosas.

SE RECOMIENDA:

En este articulo lo que se pretende es tener el mayor control de la seguridad al momento de ingresar a validar los usuarios, lo que haré es encriptar la palabra “SI” o la palabra que mas les convengan cuanto mas grande mejor, encriptado con el algoritmo MD5(), que se sabe que sólo se encripta y no hay un algoritmo para desencriptar esto. Así que encripto la palabra “SI” y lo almaceno en una variable de session cuando un usuario validado ingresa, luego lo voy comparando continuamente con el archivo seguridad.php que es comparado en todos los archivos de nuestro sistema en el caso de que tal variable de session no coincida, me redirecciona nuevamente a ingresar validando nuevamente mis datos.

A continuación un ejemplo del código a usar.

Autenticación del ingreso
Autenticación.php
include (“conexion.php”) ;
$user=$_POST["usuario"] ;
$pass=$_POST["contrasena"] ;
$sql =”SELECT * FROM tabla where user=’$user’ and pass=’$pass’”;
$result = mysql_query($sql);
if ($row = mysql_fetch_array($result))
{
//usuario y contraseña válidos
//se define una sesion y se guarda el dato
session_start();
$_SESSION["autenticado"]= ‘ce774d9cab3ae0bdf522cd0839bed364’;
$_SESSION["usuario"]=$row["user "] ;

header (“Location: index.php”);
}else {
//si no existe se va a login.php
header(“Location: login.php?errorusuario=si”);
}

Comprobando el ingreso autenticado
Seguridad.php

//Inicio la sesión
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTICADO
if ($_SESSION["autenticado"] != “ce774d9cab3ae0bdf522cd0839bed364″) {
//si no existe, va a la página de autenticación
header(“Location: login.php”);
//salimos de este script
exit();
}

Nota
Si=”ce774d9cab3ae0bdf522cd0839bed364″, encriptado

Nunca está de más utilizar la combinación máxima posible de validaciones con la finalidad de mejorar la seguridad de nuestra aplicación.
Espero sugerencias…

2 Comments :, , , , más...

Buscando Algo?

Usa el formulario para buscar en el sitio:

Aun no encontraste lo que buscas? Deja un comentario o contacta con nosotros, te hecharemos un cable!