Nehmen wir an, ich habe einen Code wie diesen:
$dbh = new PDO("blahblah");
$stmt = $dbh->prepare('SELECT * FROM users where username = :username');
$stmt->execute( array(':username' => $_REQUEST['username']) );
In der PDO-Dokumentation steht:
Die Parameter für vorbereitete Anweisungen müssen nicht in Anführungszeichen gesetzt werden; der Treiber übernimmt dies für Sie.
Ist das wirklich alles, was ich tun muss, um SQL-Injections zu vermeiden? Ist es wirklich so einfach?
Sie können MySQL übernehmen, wenn es einen Unterschied macht. Außerdem bin ich wirklich nur an der Verwendung von vorbereiteten Anweisungen gegen SQL-Injection interessiert. In diesem Zusammenhang interessieren mich XSS oder andere mögliche Schwachstellen nicht.
5 Stimmen
Besserer Ansatz 7. Nummer Antwort stackoverflow.com/questions/134099/