Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/06/2009, 15:53
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

Por cierto te he puesto este mismo mensaje en otro post que tenias duplicado, te lo dejo aqui y borro el otro


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