www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » PHP und Sicherheit » SQL Injection

SQL Injection

Ähnlich wie beim Cross Site Scripting wird durch eine von außen kommende Eingabe die Anwendung (in dem Fall ein Angriff auf die MySQL-Datenbank) angegriffen. Dies kann vom Authentifizieren ohne Zugangsdaten über Auslesen der kompletten Datenbank bis zum Löschen der Datenbank (klarer Fall, der rechtlich hart verfolgt werden kann, allerdings aufwendig wird, wenn der Täter im Ausland sitzt) führen kann.

Eine SQL-Anweisung in der Form:

mysql_query("SELECT FROM zugangsdaten WHERE nutzer=\"$nutzer\" AND 
passwort=\"$passwort\");

ist prädestiniert für die Schwachstelle. Der Angreifer muss nur dieser SQL-Anweisung unterjubeln, dass nach dem Bereich nutzer=\"$nutzer\" nichts mehr kommt. Und schon ist man durch Kenntnis des Nutzernamens eingeloggt, ohne das eigentliche Passwort zu kennen. Das Ende einer SQL-Anweisung wird mit ; übergeben.

Als findiger Programmierer könnte man ja darauf kommen, die Reihenfolge umzustellen:

mysql_query("SELECT FROM zugangsdaten WHERE passwort=\"$passwort\" AND 
nutzer=\"$nutzer\");

I.d.R. sind die Angreifer auch „findig“ und deaktivieren den Bereich für das Passwort. Denken Sie mal in die Richtung, dass es bei SQL-Anweisungen ja durchaus logische Operatoren gibt wie beispielsweise „or“ und solche Bedingungen, die immer wahr sind wie „1=1“ oder „2=2“.

Vorgehensweise ist, die von außen kommenden Daten mit dem PHP-Befehl „mysql_real_escape_string“ und Konsorten unwirksam zu machen. Allerdings muss man daran denken, dass beim Auslesen der Daten aus der Datenbank mit dem PHP-Befehl stripslashes gearbeitet werden kann und dann die Gefährlichkeit wieder da ist.

Dazu finden sich sehr schön unter https://www.php.net/manual/de/security.database.sql-injection.php die entsprechenden weiterführenden Hinweise.

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe