ajax_login.php
Código PHP:
Ver original
//EN ESTE ARCHIVO TENGO MIS FUNCIONES PARA SANITIZAR LAS VARIABLES include "security.php"; function verificar_login($username,$password) { $consulta= "SELECT id_user,id_profile,username,pass,id_canal,clave_suc,logeado FROM users WHERE username='$username' and pass='$password'"; include "conexion.php"; $idprofile=""; $iduser=""; { $accion="FALLO INICIO DE SESION"; $origen=$_SERVER['REMOTE_ADDR']; generaLogs($username,$accion,$origen); echo "Usuario no Encontrado"; }else{ { $logeado=$row['logeado']; if ($logeado=="1"){ //header("Location:yaestalogeado.html"); // rediriges al index echo "logeado"; $accion="USUARIO YA TENIA UNA SESION ABIERTA"; $origen=$_SERVER['REMOTE_ADDR']; generaLogs($username,$accion,$origen); }else { //Actualizar tabla de users poniendo el estado de logeado en verdadero $consulta2= "UPDATE users SET logeado=true WHERE username='$username'"; include "conexion.php"; $accion="USUARIO INICIA SESION EN EL SISTEMA"; $origen=$_SERVER['REMOTE_ADDR']; generaLogs($username,$accion,$origen); //recupera el usuario $nameUser=$row['username']; //RECUPERAr columna id_ perfil $idprofile=$row['id_profile']; //GUARDAMOS DATOS NECESARIOS EN VARIABLES DE SESION //ESTO PARA QUE PUEDAN SER UTILIZADOS EN CUALQUIER MOMENTO DURANTE LA SESION $_SESSION["id_user"] =$iduser; $_SESSION["u_name"] =$nameUser; echo $idprofile; }//end usuario no logeado }//end while }//END else usuario encontrado //mysql_close(); }//termina function verifica_login { //recibo las variables y las sanitizo con la funcin Securityu //$pwd=$_POST['password']; //$pwd=hash('sha256', $pass); //LO QUE HAGO AQUI ES ENVIAR LAS VARIABLES CACHADAS POR POST A MI //FUNCION QUE "SANITIZA" LAS VARIABLES PARA EVITAR INYECCION DE CODIGO //SQL verificar_login($user,$pwd); }else{ echo "no"; } }else{ } ?>
Ahora les comprato la funcion que utilizo para sanitizarlas.
security.php
Código PHP:
Ver original
<?php // Modificamos las variables pasadas por URL foreach( $_GET as $variable => $valor ){ } // Modificamos las variables de formularios foreach( $_POST as $variable => $valor ){ } // Modificamos las variables pasadas por URL function Security($_Cadena) { //falta agregar * si es necesario $nopermitidos = array("'",'´','~','¨',' ','/','@','#','&','$','!','¡','?','¿','=','(',')','\\','[',']','{','}','_','-','%','<','>','+','|',';',"\""); //return mysql_real_escape_string($_Cadena); } ?>
Segun lo que lei con eso se puede evitar la inyección de codigo, aunque como les digo, la verdad no se como lo hacen o por donde lo hacen,yo supongo que es atraves de los inputs del formulario y de la URL... se supone que Security.php sanitiza tanto las variables pasadas por URL(_GET) como las que van por el input (_POST)
Podrian decirme si esto no srive, o cual es la mejor forma de evitar la inyeccion de codigo a nivel servidor??.... Estoy migrando mi API de MYSQL a MySQLI, y ahi incluyho esta instruccion
Código PHP:
Ver original
$username = $mysqli->real_escape_string($username); $password = $mysqli->real_escape_string($password);
Esto apenas lo estoy desarrollando por que estoy aprendiendo MySQLI ( cuando me entere que MYSQL de PHP estaba deprecada
![U_U](http://static.forosdelweb.com/fdwtheme/images/smilies/nods.png)
Gracias de antemano por sus comentarios. Saludos!