¿Este mecanismo de autenticación es vulnerable a la inyección de SQL? Si es así, ¿cómo podría uno explotarlo y cuál es la forma más efectiva de mitigar esto?
if (isset($_POST['userid']) && isset($_POST['password'])){
$username = $_POST['userid'];
$password = crypt($_POST['password'],'34l5kj');
$query = "SELECT * FROM users WHERE name =:username and pass=:password";
$db->query($query);
$db->bind(':username', $username);
$db->bind(':password', $password);
$db->execute();
$data = $db->single();
$_SESSION['valid_user'] = $username;
$_SESSION['user_id'] = $data['id'];
$_SESSION['pwd']=$_POST['password'];