Sql-Injection-Proof-of-Concept: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 24: Zeile 24:
 
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.
+
;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:14 Uhr

Test Seite

Unsichere Seite

Sql-injection-1.png

Sichere Seite

Sql-injection-2.png

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.