Foros del Web » Programando para Internet » PHP »

ayuda con seguridad en web logins

Estas en el tema de ayuda con seguridad en web logins en el foro de PHP en Foros del Web. Buenas tardes, estoy trabajando en la elaboracion de un sitio web y me han comentado que el login esta muy debil, me dicen que hay ...
  #1 (permalink)  
Antiguo 17/06/2009, 14:28
 
Fecha de Ingreso: mayo-2009
Ubicación: Arequipa
Mensajes: 51
Antigüedad: 15 años
Puntos: 1
Exclamación ayuda con seguridad en web logins

Buenas tardes, estoy trabajando en la elaboracion de un sitio web y me han comentado que el login esta muy debil, me dicen que hay algunas personas que han logrado pasarse tales logins, asi que me an pedido que le de seguridad, ese es el problema, he revisado el login y a mi parecer esta ok, pero quisas me pueden dar consejos de como poder mejorarlos...
comentenme cuales serian errores comunes para arreglar

parte de mi login es:
Código PHP:
if ( isset($_POST["user"]) and isset($_POST["pass"]) ){
    include(
"conexionBD.inc.php");
    
$_POST["user"]= trim($_POST["user"]); $_POST["pass"]=trim($_POST["pass"]);
    
$db="users";
    
$sql "SELECT * FROM $db";
    
$sql .= " WHERE user = '".$_POST['user']."' and pass = '".$_POST['pass']."' ";

que creo es lo mas comun
  #2 (permalink)  
Antiguo 17/06/2009, 14:45
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: ayuda con seguridad en web logins

Pásate mejor por el tema de PHP
__________________
No diseñes usando tablas.
  #3 (permalink)  
Antiguo 17/06/2009, 15:46
Avatar de iDkInf  
Fecha de Ingreso: junio-2009
Mensajes: 52
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ayuda con seguridad en web logins

Hola alexvb yo utilizaba antes esta funcion que encontre por algun lado y fui añadiendole cosas que necesitaba, no es 100% segura por que nada lo es pero evita por lo menos SQL Injection por ejemplo, ademas que te ayudara aprender lo básico

Saludos y espero que te valga, aunque es recomendable que hagas lo que te ha comunicado hades87


Código HTML:
<form method="post" action="index.php" id="alta_usuario">
<p>
<label>Usuario:</label>
<input type="text" class="textbox_log" name="usuario" id="usuario"/>
</p>
<p>
<label>Contraseña:</label>
<input type="password" class="textbox_log" name="password" id="password"/>
</p>
<p>
<input type="image" class="bEnviar" src="bEnviar.gif"/>
</p>
</form> 


Código PHP:
<?php

// Iniciamos sesión.
session_start();

function 
verificarUsuario()
{
     
// Modificamos las variables pasadas por URL
    
foreach( $_GET as $variable => $valor )
        
$_GET $variable ] = str_replace "'" " " $_GET $variable ] );

    
// Modificamos las variables de formularios
    
foreach( $_POST as $variable => $valor )
        
$_POST $variable ] = str_replace "'" " " $_POST $variable ]);

    if ( isset( 
$_POST['usuario'] ) && isset( $_POST['password'] ) )
    {
        
// chequear si se llama directo al script.
        
if ($_SERVER['HTTP_REFERER'] == "")
        {
            
// Paramos la ejecucion del script.
            
die ("Error cod.:1 - Acceso incorrecto!");
            
            
// Salimos del script.
            
exit;    
        }
    
        
// RECOJO LAS VARIABLES
        // Quitamos caracteres extraños al valor de la variable.
        
$USUARIO stripslashes$_POST['usuario'] );
        
$PASSWORD stripslashes$_POST['password'] );
        
$consultaVerUsuario;
        
$aConsultaVerUsuario;
        
        
// Consultamos si el usuario y la contraseña son correctas.
        
$consultaVerUsuario mysql_query"SELECT * FROM iDkAdmin_usuarios 
                                            WHERE NOMBRE = '"
mysql_real_escape_string($USUARIO) . "' AND PASSWORD = '"mysql_real_escape_string($PASSWORD) . "'" )    
                                            or die( 
"Error en la consulta." );

        
// Si nos devuelve 0, esque no ha encontrado a ningun usuario o la contraseña esta escrita inconrrectamente.
        
if ( mysql_num_rows$consultaVerUsuario ) == )
        {
            echo 
'<script language="javascript">'."\n"
                
.'alert(\'El usuario no existe o el password no es valido.\');'."\n"
                
.'</script>'."\n";
        
            echo 
"<META HTTP-EQUIV='refresh' CONTENT='0; URL=index.php'>";
        }
        else
        {
            
// Guardamos la consulta en un array.
            
$aConsultaVerUsuario mysql_fetch_array$consultaVerUsuario );            
            
            
// Le damos nombre a la sesión.
            
session_name$USUARIO );
            
            
// Le decimos al explorador que no guarde en cache nada de esta página.
            
session_cache_limiter'nocache,private' );
            
            
// Guardamos información del nivel de usuario.
            
$_SESSION['usuario_nivel'] = $aConsultaVerUsuario['ID_PRIVILEGIO'];
            
            
// Guardamos información del nombre de usuario.
            
$_SESSION['usuario_login'] = $aConsultaVerUsuario['NOMBRE'];
            
            
// Recargamos la web para entrar en modo administracion.                        
            
Header ("Location: index.php");
            
            
// Salimos del script.
            
exit;
        }
        
        
// Liberamos la consulta.
        
mysql_free_result$consultaVerUsuario );
        
        
// Borramos las variables.
        
unset( $USUARIO$PASSWORD$consultaVerUsuario$aConsultaVerUsuario );
    }
}

?>

Última edición por tunait; 18/06/2009 a las 00:58 Razón: remover firma
  #4 (permalink)  
Antiguo 18/06/2009, 01:00
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: ayuda con seguridad en web logins

Tema trasladado desde Web general
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 11:27.