I currently have this PHP code right now for authentication and I would like to figure out if it's vulnerable to a MySQL injection. Specifically if someone can return fake data with an UNION or other attack and therefore fake the login. I am currently using mysqli_real_escape_string to try to prevent trivial attacks and also attempt to sanitize the request. However, is this code perfectly safe due to the use of mysqli_real_escape_string or is there a security flaw?
$email = mysqli_real_escape_string($database_connection, $_POST["email"]); $pass = mysqli_real_escape_string($database_connection, $_POST["pass"]); $query = "SELECT * FROM auths WHERE email='$email' AND pass='$pass'"; $query_result = mysqli_query($database_connection, $query); if(mysqli_num_rows($query_result) === 1) { // User is logged in. } else { die("Unauthorized"); }