Hola, estoy intentando crear mis propias funciones y sistemas de seguridad para evitar accesos malintencionados con consultas sql en un sistema de autenticación por php.
Os dejo aquí el código para que me digáis las fallas que a simple vista le veis y en que podría mejorar.
logon.php el que recibe directamente del form, comprueba las variables que se van a usar y después si están vacías o no para enviarlo al que tratará los datos.
<?php
include("system/dbhandler.class.php");
if(isset($_POST['user']) || isset($_POST['passu'])){
//Las variables están definidas y son las correctas.
if(empty($_POST['user']) || empty($_POST['passu'])){
header("Location: ../index.php?dataLogEmpty");
}else{
$user = $_POST['user'];
$pass = $_POST['passu'];
$dbh = new dbhandler;
$dbh->logOn($user,$pass);
}
}else{
header("Location: ../index.php?noAllowConecction");
}
?>
Función que se encargará de tratar los datos recibidos y comprobar que no son malintencionados, aún por terminar.
Es una clase.
function logOn($user,$pass){
//session_start();
$user = mysql_real_escape_string($user);
$pass = md5($pass);
$usercheck = mysql_query("select * from usuario where usuario = '$user' && contraseña = '$pass'");
if (mysql_num_rows($usercheck)) {
$iduser = mysql_query("select id from usuario where usuario = '$user'");
while ($id = mysql_fetch_array($iduser)) {
//Autentificado, definimos variables de session necesarias.
$_SESSION['auth'] = "YES";
$_SESSION['user'] = $user;
$_SESSION['id'] = $id['id'];
header("Location: zonanegocio/index.php");
}
} else {
//No autentificado
header("Location: ../index.php?userNotFound");
}
}
En realidad lo que estoy intentando crear son capas, que cada una haga algo específico y ale.
Un cordial saludo y gracias.