Ver Mensaje Individual
  #12 (permalink)  
Antiguo 11/09/2011, 09:19
Avatar de SPAWN3000
SPAWN3000
 
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 8 meses
Puntos: 15
Respuesta: Sistema seguridad login.

1. Opto por la opción de un campo en una tabla para el control de intentos, pero si no sobrepasa el limite de intentos... después de un periodo de tiempo el campo debería volver a 0. Al igual que debes validar los tiempos entre los intentos. Una híbrido entre tabla y cookies seria lo mejor, y la información en cookies siempre con encripción con semilla....

2. Crear un campo oculto completamente vació, el cual siempre que se envíe "debe mantenerse vacío", de lo contrario lo ingreso un robot y no debe procesarse la solicitud(El estilo se debe colocar debe el archivo .css de la página, no desde el formulario.
Código:
<input style="visibility:hidden" name="pvalidate" type="" value=""/>
3. Coloca esto en un archivo .php, y adicionalo al inicio de todo formulario(Valida en que afecta tu aplicación).
Código:
foreach($_GET as $varb=>$valor){
	$_GET[$varb] = isset($_GET[$varb])?$_GET[$varb]:null;
	$_GET[$varb] = str_replace('\'','',$_GET[$varb]);
	$_GET[$varb] = escapeshellcmd($_GET[$varb]);
}
foreach($_POST as $varb=>$valor){
	$_POST[$varb] = strip_tags($_POST[$varb]); //xss
	//$_POST[$varb] = str_replace('\'','',$_POST[$varb]); //isql
	//$_POST[$varb] = isset($_POST[$varb])?$_POST[$varb]:null;
	//$_POST[$varb] = escapeshellcmd($_POST[$varb]);
}
4. En-cripta los parámetros en la url.

5. Una costumbre que no debe faltar en las vistas.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">

6. Separa el código que accede a la base de datos, el que valida los usuarios debe estar en una carpeta separada(Preferiblemente en clases) con un archivo que impida su acceso (.htaccess). Mucho menos aun con un password especifico, solo por vía ftp... y en todos los directorios menos el raíz crea un archivo index.htm en blanco (Accede a las secciones de la página por sistema de web modular y valida el ataque por inclusión de código remoto .php).

Un saludo,