Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Seguridad en mi clase de login

Estas en el tema de Seguridad en mi clase de login en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola foreros, llevo ya un año estudiando php por mi cuenta y ahora que me disponia a hacer una web usando clases por primera vez ...
  #1 (permalink)  
Antiguo 27/06/2010, 02:43
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid
Mensajes: 18
Antigüedad: 14 años, 3 meses
Puntos: 0
Seguridad en mi clase de login

Hola foreros, llevo ya un año estudiando php por mi cuenta y ahora que me disponia a hacer una web usando clases por primera vez y quiero mostrar una que he creado para iniciar sesion y quiero saber si es segura, etc... a ver si me pueden ayudar.

login.class.php
Código PHP:
<?php
session_name
('romasession');
session_start();
class 
Acceso{
    function 
iniciar ($username,$password) {
        
$db=new MySQL();
        
$db->open();
        
$this->usaddslashes(stripslashes($username));
        
$this->pw md5(addslashes(stripslashes($password)));
        
$checkquery=$db->consulta("SELECT * FROM usuarios WHERE nick='".$this->us."' AND pass='".$this->pw."'");
        if(
$db->num_rows($checkquery)) $_SESSION['romasession']=$this->us.":".$this->pw;
        else  
session_destroy();
    }
    function 
cerrar(){
        
session_destroy();
    }
 
}
?>
login.php
Código PHP:
if($_POST['iniciarsesion']) {
    
$login=new Acceso;
    
$login->iniciar($_POST['usuario'],$_POST['password']);

  #2 (permalink)  
Antiguo 27/06/2010, 09:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Seguridad en mi clase de login

Te recomiendo que trabajes con PDO. Piensa de esta forma, ¿qué cosas haría usando la forma de procedimiento? Lo único que ahora lo debes ajustar en la clase y pensando como la crearías.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 27/06/2010, 09:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Seguridad en mi clase de login

Por otro lado, para que usas addslashes() y stripslashes() juntos, no tiene caso...

También recuerda separar la funcionalidad de la lógica, supongamos que quieres usar tu clase con otra cosa que no sean sesiónes, es más sencillo de mantener si esta aparte.

Saludos.
  #4 (permalink)  
Antiguo 27/06/2010, 14:42
 
Fecha de Ingreso: enero-2010
Ubicación: Madrid
Mensajes: 18
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Seguridad en mi clase de login

Cita:
Iniciado por GatorV Ver Mensaje
Por otro lado, para que usas addslashes() y stripslashes() juntos, no tiene caso...

También recuerda separar la funcionalidad de la lógica, supongamos que quieres usar tu clase con otra cosa que no sean sesiónes, es más sencillo de mantener si esta aparte.

Saludos.
Lo de las dos juntas la verdad es que me da verguenza haberlo puesto xD y lo de las sesiones a parte tienes razón, gracias por el comentario.
  #5 (permalink)  
Antiguo 28/06/2010, 11:47
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Exclamación Respuesta: Seguridad en mi clase de login

Una observacion:
Código PHP:
Ver original
  1. $checkquery=$db->consulta("SELECT * FROM usuarios WHERE nick='".$this->us."' AND pass='".$this->pw."'");
Te recomiendo que la verificacion de la contrasena la realices en un segundo paso, para evitar la Inyección SQL (http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL)
Saludos

Etiquetas: clase, login, seguridad
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 20:23.