As instruções preparadas pelo PDO são suficientes para impedir a injeção de SQL?
Digamos que eu tenha código assim:
$dbh = new PDO("blahblah");
$stmt = $dbh->prepare('SELECT * FROM users where username = :username');
$stmt->execute( array(':username' => $_REQUEST['username']) );
A documentação do PDO diz:
Os parâmetros para instruções preparadas não precisam ser citados; o motorista cuida disso para você.
Isso é realmente tudo o que preciso fazer para evitar injeções de SQL? é realmente tão fácil?
Você pode assumir o MySQL se isso faz diferença. Além disso, estou realmente curioso sobre o uso de instruções preparadas contra injeção de SQL. Neste contexto, não me importo com XSS ou outras possíveis vulnerabilidades.