PHP 5.4 & MySQL 5.6 Grundkurs

SQL Injection

Testen Sie unsere 1983 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
SQL Injection ist eine große Sicherheitsgefahr beim Programmieren von Datenbankskripten. Was eine SQL Injection genau ist und wie Sie sich davor schützen können, erfahren Sie in diesem Video.

Transkript

Eine große Gefahr droht bei der Programmierung von Datenbank-Skripten. Und das sind die SQL-Injections. Wenn Sie die Gefahr kennen, können Sie sich aber auch davor schützen. Was ist denn eine SQL-Injection? Sie sehen hier auch den entsprechenden Eintrag im php-Manual. Dazu schauen wir uns einmal ein einfaches Beispiel an. Ich habe hier folgende Situation. Ich habe irgendeine Abfrage und die ist jetzt so aufgebaut Hier möchte ID und Name haben von einer Tabelle. Und hier habe ich meine WHERE-Klausel. Und das hier kommt aus einem Formular. Und das Passwort kommt ebenfalls aus einem Formular. Wenn es jetzt einen Datensatz zu der eingegebenen Kombination aus Benutzernamen und Passwort gibt, geht man davon aus, dass es sich um einen berechtigten Benutzer handelt. Nehmen wir weiter an, dass hier Sonderzeichen auf keine Art geschützt werden. Gehen wir erst einmal davon aus, dass aus dem Formular einmal Florence kommt und geheim. Dann würde der Select so aufgebaut werden. Und es macht natürlich kein Problem. Jetzt stellen wir uns aber einmal vor, dass es einen bösartigen Benutzer gibt. Und der schreibt nicht einfach als Benutzernamen Florence hin, sondern Folgendes Florence... Hier dieses einfache Anfangszeichen. Oder 1 = '1. Also er gibt wirklich in das Formularfeld, was ja da hinein geschrieben wird, diesen Eintrag ein. Dann wird daraus folgender SQL-Befehl. Das schaut jetzt so aus. Also an der Stelle hier bei Name wird das hier hinein geschrieben. Da 1='1 immer wahr ist, ist diese ganze Bedingung wahr. Damit wird die ID zurückgegeben, obwohl kein Passwort eingegeben wurde. Und jemand hätte sich jetzt allein durch die Kenntnis eines Benutzernamens Zugriff verschafft. Es gibt natürlich ganz viele weitere Möglichkeiten für SQL-Injections. Aber das Prinzip ist immer, dass SQL-Befehle richtig manipuliert werden. Wie schützt man sich vor solchen Manipulationen? Eine Möglichkeit besteht in der Verwendung von RealEscapeString, dass man eben Sonderzeichen maskiert. Oder man kann auch Prepared Statements verwenden, die eine erweiterte Möglichkeit darstellen. Wichtig ist, unabhängig davon was Sie von diesen beiden Alternativen tun, dass Sie sich darum kümmern.

PHP 5.4 & MySQL 5.6 Grundkurs

Steigen Sie auch ohne Vorwissen in die Programmierung PHP- & MySQL-basierter Webseiten ein und lernen Sie die Sprachgrundlagen wie Bedingungen, Schleifen, Funktionen usw. kennen.

7 Std. 9 min (86 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!