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. | ||