Foros del Web » Programando para Internet » PHP »

Sistema seguridad login.

Estas en el tema de Sistema seguridad login. en el foro de PHP en Foros del Web. Hola a todos. En mi web, en el apartado de administracion me gustaria hacer un sistema mas seguro del que tengo. Me gustaria que si ...
  #1 (permalink)  
Antiguo 10/09/2011, 20:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Sistema seguridad login.

Hola a todos.
En mi web, en el apartado de administracion me gustaria hacer un sistema mas seguro del que tengo.

Me gustaria que si alguien introduce mal la contraseña dos veces la pagina se bloquee.

Cual creen que seria la mejor forma de hacerlo?
Un saludo
  #2 (permalink)  
Antiguo 10/09/2011, 21:30
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 7 meses
Puntos: 116
Respuesta: Sistema seguridad login.

usando cookies ?
Seria una opcion (:
__________________
Programador jQuery & PHP
  #3 (permalink)  
Antiguo 10/09/2011, 23:41
 
Fecha de Ingreso: diciembre-2007
Mensajes: 194
Antigüedad: 16 años, 11 meses
Puntos: 5
Respuesta: Sistema seguridad login.

Una opción, es que agregues en tu tabla de usuarios de la base de datos un campo "intentos" o algo así, y que por cada intento fallido lo incremente, si llega a dos la próxima vez que intente logear directamente que no pueda.

Podrá seguir intentando registrarse y navegando por la web, pero supongo que lo que te importa es evitar un ataque por fuerza bruta.

Otra opción es usar captchas.
__________________
Aprender J2EE en www.programacionj2ee.com.
Mi framework PHP D Framework.
  #4 (permalink)  
Antiguo 11/09/2011, 05:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Sistema seguridad login.

Cita:
Iniciado por ZoroRoronoa Ver Mensaje
usando cookies ?
Seria una opcion (:
Cookies seria una buena idea, pero se podrian borrar y ya no funcionaria el sistema.

Creo que la idea de @MiLLeN me parece buena.
Una comprobacion de cuantos intentos lleva siempre antes de nada y si lleva dos que no ejecute el codigo. El problema es que no tengo ninguna tabla en la BD para usuarios, ya que solo hay uno.
  #5 (permalink)  
Antiguo 11/09/2011, 05:31
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 2 meses
Puntos: 297
Respuesta: Sistema seguridad login.

¿Entonces como sabes quienes son los administradores o no? en algun sitio tienes que consultarlo.
  #6 (permalink)  
Antiguo 11/09/2011, 05:44
 
Fecha de Ingreso: diciembre-2007
Mensajes: 194
Antigüedad: 16 años, 11 meses
Puntos: 5
Respuesta: Sistema seguridad login.

Creas otro campo "permisos" o "roles", o algo, asi, y separas por "," los diferentes roles de un usuario. Por ejemplo

admin:
invitado,usuario,admin

usuario:
invitado,usuario

invitado:
invitado

y compruebas que el usuario que esta intentando loguearse, tiene entre sus roles el de admin.
__________________
Aprender J2EE en www.programacionj2ee.com.
Mi framework PHP D Framework.
  #7 (permalink)  
Antiguo 11/09/2011, 05:46
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 3 meses
Puntos: 165
Respuesta: Sistema seguridad login.

soy partidario de hacer un campo tipo boolean con las acciones que puede hacer cada usuario.
  #8 (permalink)  
Antiguo 11/09/2011, 08:19
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Sistema seguridad login.

Cita:
Iniciado por hasdpk Ver Mensaje
¿Entonces como sabes quienes son los administradores o no? en algun sitio tienes que consultarlo.
No necesito administradores o usuarios diferentes. Solo hay uno, con su user y su pass que es el que entra a la parte de admin del sitio.
  #9 (permalink)  
Antiguo 11/09/2011, 08:35
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 3 meses
Puntos: 165
Respuesta: Sistema seguridad login.

Entonces con $_SESSION y un fichero donde coloques las credenciales es suficiente,

en cada fichero restringido, compruebas si la session esta o no.
  #10 (permalink)  
Antiguo 11/09/2011, 09:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Sistema seguridad login.

A ver, si el sistema de seguridad esta hecho. Yo compruebo los datos en una pagina que si son correctos crea una session nueva.

Yo lo que quiero es un metodo por el cual al hacer dos intentos fallidos la pagina se bloquee.
  #11 (permalink)  
Antiguo 11/09/2011, 09:16
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 3 meses
Puntos: 165
Respuesta: Sistema seguridad login.

Entonces tendrás que guardar los máximos datos posibles que identifiquen al usuario que esta haciendo esos intentos.. todo depende de cómo lo quieras hacer.

Por ejemplo, IP, navegador, sistema operativo.. y entonces tu en tu bbdd guardas cada intento de acceso en la bbdd, con un boolean del tipo, acceso correcto o no correcto. Después tendrás que establecer en que rango de tiempo vas a consultar el último acceso para proceder al bloqueo, si tu consulta devuelve x (en tu caso 2), no dejas hacer el login.

Entiendes?
  #12 (permalink)  
Antiguo 11/09/2011, 09:19
Avatar de 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,
  #13 (permalink)  
Antiguo 11/09/2011, 09:27
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 3 meses
Puntos: 165
Respuesta: Sistema seguridad login.

Cita:
Iniciado por SPAWN3000 Ver Mensaje
pero si no sobrepasa el limite de intentos...
Si creas un rango de tiempo, no es necesario hacer nada más , no?

Es decir, harías una consulta a la BBDD de los minutos / horas que decidas, por ejemplo, 24 horas.

Respecto al campo oculto.. no entiendo su utilidad.. no se porque no es del tipo hidden..

El resto de como ordenar el código hay opciones, yo uso MVC.
  #14 (permalink)  
Antiguo 11/09/2011, 17:23
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Sistema seguridad login.

Cual es la diferencia entre web modular y MVC?

Creo que usare lo de la BB. Hare un registro de todas las entradas (con la info de la IP, navegador, etc) y si hay un intento fallido en el ultimo registro no permito la entrada hasta pasados 30 minutos. Ademas me envio un email con los datos del "incidente".

Un saludo y gracias
  #15 (permalink)  
Antiguo 12/09/2011, 01:26
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 3 meses
Puntos: 165
Respuesta: Sistema seguridad login.

No se si es lo mismo o es diferente.. pero por ejemplo, en Codeigniter, puedes hacer que se usen modulos, con la instalación de un complemento. Entonces pasa a ser HMVC

Un saludo!
  #16 (permalink)  
Antiguo 12/09/2011, 03:45
Avatar de diego9j  
Fecha de Ingreso: septiembre-2011
Mensajes: 33
Antigüedad: 13 años, 2 meses
Puntos: 2
Respuesta: Sistema seguridad login.

yo en mi web tengo puesto que un user tenga permisos de admin. al loguear me mete una cookie que dura 2 dias y en ella esta metido el nombre del user (en este caso, admin) y por toda la pagina tengo ifs que depende de cual sea el valor de esa cookie pongan una cosa o otra. creo que el uso de cookies es lo mejor porque si la cookie se va, simplemente es volver a loguear

Etiquetas: seguridad, sistema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:35.