info@a-coding-project.de

Laravel: Sind SQL-Injections möglich?

Mit SQL-Injections können Angreifer Zugriff auf deine Datenbank bekommen. Das geht zum Beispiel so:

DB::update('UPDATE kunden SET aktiv = 1 WHERE id = ".$_GET['id']);

In diesem Fall wird der Parameter id direkt in einen SQL-Befehl geschrieben. Nun kann der Angreifer einfach folgendes in den GET-Parameter schreiben

1 OR 1 = 1

In diesem Fall wird aus dem SQL-Statement Folgendes:

UPDATE kunden SET aktiv = 1 WHERE id = 1 OR 1 = 1

So werden nun alle Kunden geupdatet, statt ein Einzelner.

SQL-Injections in Laravel verhindern

Der beste Weg um SQL-Injections in Laravel zu verhindern ist die Nutzung von Eloquent. Das hilft auch dabei, den Quellcode ordentlich zu strukturieren.

Wer dennoch auf die DB-Funktionen angewiesen ist, kann hier mit Parametern arbeiten:

DB::update('update kunden set aktiv = 1 where id = ?', [$_GET['id']);

In diesem Fall wird der Parameter im SQL-Statement mit einem Fragezeichen markiert. Im zweiten Attribut werden dann nacheinander alle Parameter als Array übergeben.

Laravel Entwickler gesucht?

Wir haben bereits viel Erfahrung im Umgang mit Laravel und VUE.js.
Nehmen Sie gerne unverbindlich Kontakt zu uns auf.

zum Angebot

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant