Jo: SQL Injection

Beitrag lesen

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