Hallo,
ein Beispiel für Prepared Statements in PHP:
In diesem Beispiel erfolgt ja keine Typüberprüfung. Mit Typüberprüfung wäre mir das klar, dass keine SQL-Injections möglich sind.
Aber hier kann ich doch genauso folgendes in das Eingabefeld für "user" übergeben: "blabla OR 1=1"
Was ja dann dennoch zu folgendem SQL-Befehl führt:
SELECT user, password FROM tbl_user WHERE user=blabla OR 1=1
Inwiefern soll das obige Beispiel für Prepared Statements vor SQL-Injections schützen? Oder gilt das nur, falls man auch auf Typen der Parameter prüft?
ein Beispiel für Prepared Statements in PHP:
Code:
<?php
$user = $_POST['user'];
$stmt = $dbh->prepare("SELECT user, password FROM tbl_user WHERE user=:user");
$stmt->bindParam(':user', $user);
In diesem Beispiel erfolgt ja keine Typüberprüfung. Mit Typüberprüfung wäre mir das klar, dass keine SQL-Injections möglich sind.
Aber hier kann ich doch genauso folgendes in das Eingabefeld für "user" übergeben: "blabla OR 1=1"
Was ja dann dennoch zu folgendem SQL-Befehl führt:
SELECT user, password FROM tbl_user WHERE user=blabla OR 1=1
Inwiefern soll das obige Beispiel für Prepared Statements vor SQL-Injections schützen? Oder gilt das nur, falls man auch auf Typen der Parameter prüft?