Questo meccanismo di autenticazione è vulnerabile all'iniezione SQL? In tal caso, come si potrebbe sfruttarlo e qual è il modo più efficace per mitigarlo?
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'];