Recientemente he creado un script de registro PHP para un sitio web en el que estamos trabajando un amigo y yo. He leído sobre los peligros de la inyección de MySQL y me preguntaba si mi código actual está protegido contra tales ataques, o si es necesario tomar medidas adicionales.
La parte relevante del código es la siguiente
$email = $_POST['email'];
$username = $_POST['username'];
$username = strip_tags(trim($username));
$email = strip_tags(trim($email));
//Sanitation code I found somewhere..
function mres($var){
$conn = get_my_db();
if (get_magic_quotes_gpc()){
$var = stripslashes(trim($var));
}
return $conn->real_escape_string(trim($var));
}
//Sanitize username
$sanUsername = mres($username);
//Make SQL query
$sql = "SELECT username FROM accounts WHERE username = '$sanUsername' ";
$result = $conn->query($sql);
Gracias de antemano,
Shawn
EDITAR:
He actualizado la consulta SQL a la siguiente para hacer uso de declaraciones preparadas
//Prepare statement
$prep = $conn->prepare("SELECT username FROM accounts WHERE username = ?");
$prep->bind_param("s", $sanUsername);
$prep->execute();
$result = $prep->get_result();