Hallo,
Angenommen ich habe eine Seite, die wie folgt aufgebaut ist. Es wird per GET eine Variable ID übergeben, welche für einen MySQL-DB-Aufruf genutzt wird.
Select * FROM Tabelle WHERE ID='$_GET['ID']'
Wie kann ein potentieller Hacker nun mittels SQL_Injection eingreifen?
überleg doch mal was passiert wenn die ID den Inhalt O'Reily hat.
Wie und welche Schutzmechanismen kann man hier einbauen?
Zunächst einmal solltest du wissen, dass es bei einem SELECT Statement nicht ganz so tragisch wie bei einem DELETE oder INSERT ausschaut. Trotzdem müssen Codeeinschleusungen verhindert werden.
PS: derzeit versuche ich mit Select * FROM Tabelle WHERE ID='addslashes(htmlentities(htmlspecialchars($_GET['ID'])))' Codeeinspeisung zu verhindern. Ist dies der richtige Weg?
Absolut nicht. Der richtige Weg wäre ID=mysql_real_escape_string($_GET['ID')]. Mehr nicht.
Grüße, Matze
Gruß Bobby