LU02f - LB2 - Fokusthema: SQLi

Dieses Thema ist gerade deswegen spannend, weil in dieser alle drei Schichten einer 3-Schichten-Architektur miteinbezogen werden müssen.

  1. Schicht: Sie benötigen eine Art Frontend-Simulation wie beispielsweise Postman oder Commandline-basiertes Backend-Script. Es braucht also keine schicke Oberfläche.
  2. Schicht: Sie müssen einen Node-Server programmieren.
  3. Schicht: Es braucht eine sinnvolle Datengrundlage, um SQL-Attacken durchführen zu können.
  • Angriffe gegen die Vertraulichkeit: Es können Daten aus einer Tabelle gelesen werden, die nicht gelesen werden dürften.
  • Angriffe gegen die Verfügbarkeit: Das System wird zum Absturz gebraucht, sodass Online-Dienste nicht mehr angeboten werden können.
  • Angriffe gegen die Integrität: Die Daten werden verändert, ohne dass die betroffene Person davon weiss.
  • Escaping: Spezielle Zeichen in Eingaben werden maskiert, damit sie von der Datenbank als Daten und nicht als Teil des SQL-Codes interpretiert werden.
  • Input Validation: Überprüfung, ob Eingaben dem erwarteten Format, Typ oder Wertebereich entsprechen, bevor sie weiterverarbeitet werden.
  • Prepared Statement: die technische Umsetzung auf DB-Seite (vorkompiliertes Statement, wiederverwendbar).
  • Parametrisierung: das Konzept, Werte sauber von der SQL-Struktur zu trennen.
  • Stored Procedure: Vorgefertigte und in der Datenbank gespeicherte SQL-Routinen, die mit Parametern aufgerufen werden können, statt dynamisch SQL zusammenzubauen.
  • Es braucht kein Frontend, sprich der Code kann entweder über Commandline oder als separates Angriffsscriptdurchgeführt werden.
  • Jedes Teammate kann alle Fragen zum Fousthema beantworten, sprich der Wissentransfer im Tandem wird durch das Tandem sichergestellt.
  • Bei Ungleicher Performance im Tandem wird individuell benotet.
  • Die Thementeams werden in Konkurenz zueinander treten. Sofern ein wesentzlicher Teambeitrag vorhanden ist, erhält jedes Gewinnerteam-Mate jeweils einen Bonus von 0.25 Notenpunkten.
Noten Beschreibung Hinweis
-1.0 Die Best-Practice-Coding-Standard wurden nicht eingehalten Python
-0.5 Es wird nicht kollaborativ und Ausfallsicher (inkl. Versionierung) gearbeitet
-2.0 Es können Fragen zum Lösungcode nicht korrekt oder gar nicht beantwortet werden.
-1.5 Pro angefangenem Tag Verspätung
-0.5 Pro Downloadversuch: Link funktioniert nicht (abgelaufen, Berechtigungen fehlen, etc.)
Noten Beschreibung Hinweis
+0.75 Angriff gemäss einer Variante von 2.1
+0.75 Angriff gemäss je einer Variante und 2.2
+1.0 Angriff gemäss je einer Variante 2.3
+0.75 Verteidigung gemäss einer Variante von 3.1
+0.75 Verteidigung gemäss je einer Variante und 3.2
+1.0 Verteidigung gemäss je einer Variante 2.3
+1.0 Angriff und Verteidigung sind in separaten Files untergebracht

Volkan Demir

  • modul/m183/learningunits/lu02/06.txt
  • Zuletzt geändert: 2025/09/24 11:05
  • von vdemir