Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/06/2009, 15:46
Avatar de iDkInf
iDkInf
 
Fecha de Ingreso: junio-2009
Mensajes: 52
Antigüedad: 15 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