Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m183:learningunits:lu02:06 [2025/09/18 11:42] – vdemir | modul:m183:learningunits:lu02:06 [2025/09/18 15:01] (aktuell) – [Note 5.3 - 6.0] vdemir | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Projekt-Themen ====== | + | ====== |
- | ===== 1. SQLi ===== | + | ===== 1. Einleitung |
- | SQL-Injektion | + | Dieses Thema ist gerade deswegen spannend, weil in dieser alle drei Schichten einer 3-Schichten-Architektur miteinbezogen werden müssen. |
- | **Vorarbeiten** | + | |
- | * Sie wählen ein Themenschwerpunkt passend zur Aufgabenstellung (Adressdatenbank, Kundendatenbank, | + | |
- | * Sie erstellen mindestens 10 UseCases fachlich korrekt und passend zum gewählten Schwerpunkt | + | |
- | * Basierend auf den UseCases erstellen Sie ein ERD in der Krähnenfuss-Notation, welche die UsesCases abdeckt | + | |
- | * Sie setzten das ERD in einer Datenbank wie beispielweise MySQL um | + | |
- | * Sie füllen die Tabellen mit einer represantivive Menge an Daten | + | |
+ | - Schicht: Sie benötigen ein Frontend (Selbst programmieren oder Postman verwenden) | ||
+ | - Schicht: Sie müssen einen Node-Server programmieren. | ||
+ | - Schicht: Es braucht eine sinnvolle Datengrundlage, | ||
+ | ===== 2. Informationsquellen ===== | ||
+ | Es gibt jede Menge Tutorials, sodass es wenig Sinn macht weitere zu erstellen. Sprich es ist Ihre Aufgabe sich entsprechend zu informieren. | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * <color # | ||
+ | ===== 3. Gegenmassnahmen gegen SQLi ===== | ||
+ | |||
+ | ==== 3.1 Leichte Massnahmen ==== | ||
+ | * 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, | ||
+ | | ||
+ | ==== 3.2 Mittel-Komplexe Massnahmen ==== | ||
+ | * Prepared Statement: die technische Umsetzung auf DB-Seite (vorkompiliertes Statement, wiederverwendbar). | ||
+ | * Parametrisierung: | ||
- | ===== 2 BruteForce | + | ==== 3.3 Komplexe Massnahmen |
+ | * Stored Procedure: Vorgefertigte und in der Datenbank gespeicherte SQL-Routinen, | ||
+ | |||
+ | |||
+ | ===== 4. Bewertung ===== | ||
+ | Nachfolgend finden Notenstufen bzw. die Anforderungen, | ||
+ | ==== Note 4.0 - 4.5 ==== | ||
+ | |||
+ | **Konzept** | ||
+ | * Es sind 4-5 UseCases formal korrekt und vollständig vorhanden | ||
+ | * ERD ist korrekt vorhanden mit mindestens 3 Tabellen (mindestens 1 Relation) | ||
+ | * Software-Architekturmodell (UML, ...) vollständig und fachlich korrekt vorhanden | ||
+ | **Datengrundlage** | ||
+ | * Das konzipierte Datenbankmodell wurde korrekt in einer Datenbank umgesetzt. | ||
+ | * Die Datenbanktabellen enthalten eine represantive Datenmenge (>= 10 Datensätzen) in jeder Tabe | ||
+ | **Software/ | ||
+ | * Es ist ein vulnerabler (node.js) Server mit einer Datenbankabindung vorhanden | ||
+ | * Es können Angriffe gegen eine der CIA-Triads erfolgreich durchgeführt werden: Vertraulichkeit | ||
+ | * Es gibt eine // | ||
+ | **Formale Aspekte** | ||
+ | * Die Best-Practice-Coding-Standard wurden eingehalten | ||
+ | * Es wird colaborativ gearbeitet inkl. einer Ausfallsicherheit und Versionierung | ||
+ | **Abgrenzung** | ||
+ | * Es braucht kein Frontend, sprich der Code kann entweder über Commandline oder als separates File eingelesen werden. | ||
+ | * Sprich der Fokus liegt auf dem Server | ||
+ | |||
+ | ==== Note 4.5 - 5.2 ===== | ||
+ | **Konzept** | ||
+ | * Es sind 6-8 UseCases formal korrekt und vollständig vorhanden | ||
+ | * ERD ist korrekt vorhanden mit mindestens 4 Tabellen (mindestens 1 Relation) | ||
+ | * Software-Architekturmodell (UML, ...) vollständig und fachlich korrekt vorhanden | ||
+ | **Datengrundlage** | ||
+ | * Das konzipierte Datenbankmodell wurde korrekt in einer Datenbank umgesetzt. | ||
+ | * Die Datenbanktabellen enthalten eine represantive Datenmenge (>= 20 Datensätzen) in jeder Tabe | ||
+ | **Software/ | ||
+ | * Es ist eine vulnerabler (node.js) Server mit einer Datenbankabindung vorhanden | ||
+ | * Es können Angriffe gegen eine der CIA-Triads erfolgreich durchgeführt werden: Vertraulichkeit und Integrität | ||
+ | * Es gibt eine // | ||
+ | **Formale Aspekte** | ||
+ | * Die Best-Practice-Coding-Standard wurden eingehalten | ||
+ | * Es wird colaborativ gearbeitet inkl. einer Ausfallsicherheit und Versionierung | ||
+ | **Abgrenzung** | ||
+ | * Als Ersatz für das Frontend kann Postman oder curl verwendet werden | ||
+ | * Sprich der Fokus liegt auf dem Server und eine Kommunikation mit einem potentiellen Client (Ersatz) | ||
+ | |||
+ | ==== Note 5.3 - 6.0 ===== | ||
+ | **Konzept** | ||
+ | * Es sind >9-12 UseCases formal korrekt und vollständig vorhanden | ||
+ | * ERD ist korrekt vorhanden mit mindestens 5 Tabellen (mindestens 2 Relation) | ||
+ | * Software-Architekturmodell (UML, ...) vollständig und fachlich korrekt vorhanden | ||
+ | **Datengrundlage** | ||
+ | * Das konzipierte Datenbankmodell wurde korrekt in einer Datenbank umgesetzt. | ||
+ | * Die Datenbanktabellen enthalten eine represantive Datenmenge (>= 30 Datensätzen) in jeder Tabe | ||
+ | **Software/ | ||
+ | * Es ist eine vulnerabler (node.js) Server mit einer Datenbankabindung vorhanden | ||
+ | * Es können Angriffe gegen eine der CIA-Triads erfolgreich durchgeführt werden: Vertraulichkeit und Integrität | ||
+ | * Es gibt eine // | ||
+ | **Formale Aspekte** | ||
+ | * Die Best-Practice-Coding-Standard wurden eingehalten | ||
+ | * Es wird colaborativ gearbeitet inkl. einer Ausfallsicherheit und Versionierung | ||
+ | **Abgrenzung** | ||
+ | * Als Ersatz für das Frontend kann Postman oder curl verwendet werden | ||
+ | * Sprich der Fokus liegt auf dem Server und eine Kommunikation mit einem potentiellen Client (Ersatz) | ||
- | ===== 3. DDoS ===== | ||
---- | ---- |