Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m183:learningunits:lu10:03 [2025/09/19 10:11] – vdemir | modul:m183:learningunits:lu10:03 [2025/09/19 10:37] (aktuell) – vdemir | ||
---|---|---|---|
Zeile 50: | Zeile 50: | ||
} | } | ||
updateInventory(); | updateInventory(); | ||
- | | + | |
+ | ===== Input Validation ===== | ||
+ | **Input Validation** bedeutet, dass alle Eingaben aus unsicheren Quellen (User, Formulare, API-Aufrufe, | ||
+ | |||
+ | **Oder kurz:** <color # | ||
| | ||
===== Prepared Statement ===== | ===== Prepared Statement ===== | ||
Zeile 77: | Zeile 81: | ||
await client.query(sql, | await client.query(sql, | ||
+ | ===== Stored Procedure ===== | ||
+ | Kurzfassung zuerst: Stored Procedures (SPs) verlagern SQL-Logik in die Datenbank. Richtig verwendet trennen sie Code (die prozedurale Logik in der DB) von Daten (die Parameter), reduzieren Angriffsflächen und erleichtern Zugriffssteuerung. Keine Zauberformel — sie helfen, sind aber kein Freifahrtschein. | ||
+ | {{: | ||
+ | **Wie stored procedures grundsätzlich schützen** | ||
+ | * Die SQL-Struktur liegt in der Datenbank und nicht in applikationsseitig zusammengesetzten Strings. | ||
+ | * Parameter werden (wenn sie als Parameter benutzt werden) von der DB engine als Daten behandelt — nicht als Teil des SQL-Codes. | ||
+ | * DB-Accounts können nur EXECUTE-Rechte auf die SP erhalten, nicht direkte SELECT/ | ||
+ | * SPs erlauben zentralisierte Validierung/ | ||
+ | **Kurz:** SP machen es einem Angreifer schwerer, per manipulierten Input die Abfrage-Struktur zu verändern — sofern diese nicht durch unsauberen Code zunichte gemacht wurde. | ||