Ver Mensaje Individual
  #2  
Antiguo 04-01-2010
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Reputación: 10
Julián Va por buen camino
Jau!

Cita:
Empezado por hibero Ver Mensaje
¿es suficiente el uso de una consulta parametrica para evitar SQLInjection?
Pues no lo sé por que no las uso ni creo que lo vaya a hacer en el futuro, pero sin saberlo, me apostaría mi pijama de Chuck Norris a que no.

Debes comprobar que los valores recibidos en $_GET son válidos y no contienen cosas raras como código que pueda servir para hacer sql injecting o ataques xss. Es decir, antes de ejecutar el SELECT nos aseguramos de que las variables usuario y password contienen unicamente letras y dígitos, por ejemplo, y que no tengan caracteres como <,#,?,",', etc.
Para esto lo mejor sería usar un script de probada eficacia como Kses o PHPIDS.

Cita:
Empezado por hibero Ver Mensaje
¿Qué se puede mejorar?
La lógica que usas es "si el user no está autentificado no lo dejo entrar". Creo que sería mejor "Le dejo entrar si está autentificado". Es decir, que la opción por omisión debería ser no dejar entrar, pues si de alguna forma alguien consigue anular lo que hubiera en seguridad.php, por ejemplo sustituyendo dicho archivo no podría ir a ningún sitio. No se si este punto me ha quedado claro.

Cita:
Empezado por hibero Ver Mensaje
¿Qúe incluiriais?
El funcionamiento de seguridad.php debería ser el siguiente:
session_start;
if ($autentificado)
include('user.php');
else
include(login.php);

Teniendo en user.php el típico código que pone "hola fulanito" con los enlaces o botones para cerrar sesión, ver perfil, etc. Y en login.php el form con los inputs para user y password y si acaso otro botón o enlace para "recordar contraseña"

Ademas de eso en cada página, despues del seguridad.php deberias permitir unas cosas u otras en función de los derechos de acceso del uaurio, para lo cual deberías disponer de un sistema de permisos, con usuarios, roles, grupos, etc.

Lo del nombre de la variable logueado no le veo mucho sentido. En mis scripts dicha variable es booleana. Claro, que un usuario, además de poder tener true o false en "logueado" tambien tiene otra variable "userlevel" que le permite mas o menos privilegios. O sea, que un user con "logueado==true" cuyo userlevel sea el "level por omisión" es practicamente un "invitado" y poco puede hacer hasta que no se le hayan otorgado derechos de acceso a alguna parte o adjudicado algún rol o adscrito a algún grupo.

Cita:
Empezado por hibero Ver Mensaje
¿Hay una forma de permitir sólamente 3 intentos?. Se me ocurre que agregando un nuevo campo en la base de datos numfallos, fecha,hora y que desde que se llegue a un número de fallos predeterminado que se bloquee durante un periodo de tiempo determinado desde fecha hora el usuario podría ser una mejora para eviar que alguien utilice un programa para hacer tropocientos intentos
Lo de los intentos y el ampliar el tiempo entre ellos me parece cosa obligada y yo lo que hago es guardar los intentos asociados a la dirección IP, la cual, puedo llegar a meter en un filtro si hace falta.



Gueno, menudo rollo he largao, XDD
__________________
"la única iglesia que ilumina es la que arde"
Anonimo

Última edición por Julián fecha: 04-01-2010 a las 12:27:35.
Responder Con Cita