Sql-Injection-Proof-of-Concept: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 23: | Zeile 23: | ||
Das Sicherheitsproblem wird also dadurch verursacht, dass eine Benutzereingabe ungeprüft bzw. unverarbeitet direkt weiter benutzt wird - hier in einer SQL- Anweisung. | Das Sicherheitsproblem wird also dadurch verursacht, dass eine Benutzereingabe ungeprüft bzw. unverarbeitet direkt weiter benutzt wird - hier in einer SQL- Anweisung. | ||
+ | |||
+ | ;Bei der sicheren Methode wird die Benutzereingabe nicht direkt weiter benutzt. In diesem Beispiel wird die eine php-Funktion benutzt, die dafür sorgt, dass ein Special Charakters entwertet werden und so String entsteht, der in einer SQL Abfrage sicher benutzt werden kann. |
Version vom 10. Oktober 2020, 12:13 Uhr
Test Seite
Unsichere Seite
Sichere Seite
Erläuterung
- Bei der Unsicheren Methode wird folgender Query abgesetzt.
- SELECT * FROM users WHERE username='$search';
- Wenn wir in die Variable $search folgendes schreiben
$search = ' or '1' = '1
- wird folgender Suchausdruck gebildet
- SELECT * FROM users WHERE username=' ' or '1' = '1';
- da der 2. Ausdruck wahr ist, wird die ganze Tabelle ausgegeben.
Das Sicherheitsproblem wird also dadurch verursacht, dass eine Benutzereingabe ungeprüft bzw. unverarbeitet direkt weiter benutzt wird - hier in einer SQL- Anweisung.
- Bei der sicheren Methode wird die Benutzereingabe nicht direkt weiter benutzt. In diesem Beispiel wird die eine php-Funktion benutzt, die dafür sorgt, dass ein Special Charakters entwertet werden und so String entsteht, der in einer SQL Abfrage sicher benutzt werden kann.