Hallo,
Hallo zusammen,
ich möchte eine GET Variable in meinem SQL einbauen um eine Abfrage auf eine PostgreSQL DB zu starten. Ich dachte bisher folgende Behandlung mit pg_escape_string würde mich vor SQL Injection bewahren:
# URL Variable
if (empty($_GET['id'])) {
echo "parameter fehlt: <i>id</i>";
exit;
} else {
$id = pg_escape_string($_GET['id']);
}
//SQL bauen und ausführen
$sql = "SELECT * FROM usernamen WHERE id = ".$id;
$rs = pg_query($dbconn, $sql);
...
Jetzt habe ich aber festgestellt das ich z.B. beim Aufruf meines Scripts durch Übergabe folgender Variable alles andere als sicher bin:
datei.php?id=1;delete from usernamen
Mein SQL sieht dann so aus und das Escapen bringt mir gar nix:
SELECT * FROM usernamen WHERE id = 1;delete from usernamen
Wie muss ich die übergebene Variable behandeln um alle Eventualitäten abzufangen?
Danke + Gruß
Jo