- 1 Section
- 9 Lessons
- unbegrenzt
- AP Teil 2 – Situationsaufgaben FIAE9
- 1.1Format und Bewertung AP Teil 2 FIAE
- 1.2Situationsaufgabe: Datenbankentwicklung
- 1.3Situationsaufgabe: OOP-Implementierung
- 1.4Situationsaufgabe: API-Design
- 1.5Situationsaufgabe: Testkonzept
- 1.6Situationsaufgabe: Software-Architektur
- 1.7Situationsaufgabe: Secure Coding
- 1.8Situationsaufgabe: HTML/CSS/JS Frontend
- 1.9Fachgespräch vorbereiten
Situationsaufgabe: Secure Coding
Secure Coding ist kein Randthema im FIAE AP Teil 2 – die IHK fragt zunehmend, ob FIAE-Absolventen typische Sicherheitslücken im Code erkennen und beheben können. Die Aufgabe zeigt dir Code mit Schwachstellen und fragt: Was ist das Problem? Wie wird es ausgenutzt? Wie korrigierst du es? Diese Lektion arbeitet eine vollständige Secure-Coding-Situationsaufgabe durch, die die häufigsten Angriffsklassen abdeckt.
1) Das Szenario
Betrieb: Die ShopNow GmbH betreibt einen Online-Shop. Das Development-Team hat dir Code-Ausschnitte zur Security-Review vorgelegt. Identifiziere die Schwachstellen und korrigiere sie.
Gegebene Code-Fragmente:
// Fragment 1 – Suchanfrage
String query = "SELECT * FROM produkte WHERE name = '" + userInput + "'";
stmt.executeQuery(query);
// Fragment 2 – Passwort-Speicherung
String passwort = request.getParameter("passwort");
user.setPasswort(passwort); // direkt speichern
// Fragment 3 – Passwort-Ausgabe
String nutzer = request.getParameter("name");
response.getWriter().println("Hallo " + nutzer + "!");
2) Teilaufgaben mit Musterlösungen
3) Die häufigsten OWASP Top 10 Schwachstellen
Klick eine Schwachstelle für Angriff und Fix:
SQL Injection
Manipulierte Datenbankabfragen
Cross-Site Scripting (XSS)
Skript-Einschleusung im Browser
Broken Authentication
Unsichere Authentifizierung
IDOR / Zugriffskontrolle
Direkte Objekt-Referenz
Sensitive Data Exposure
Ungeschützte sensible Daten
CSRF
Cross-Site Request Forgery
4) Secure-Coding-Checkliste für die Prüfung
| Bereich | Schlechter Code | Sicherer Code |
|---|---|---|
| SQL-Abfragen | String-Konkatenation mit User-Input | Prepared Statements / Parameterized Queries |
| Passwort-Speicherung | Plaintext oder MD5/SHA1 | bcrypt, Argon2, scrypt mit Salt |
| HTML-Ausgabe | User-Input direkt in HTML | HTML-Escaping (< → <) |
| Authentifizierung | Session-ID in URL, schwache Tokens | HTTPS, httpOnly-Cookies, JWT mit Ablaufzeit |
| Autorisierung | ID direkt aus Request nehmen | Berechtigung des eingeloggten Users prüfen |
| Fehlermeldungen | Stack-Trace an Browser senden | Generische Fehlermeldung an User, Details nur im Log |
| Dependencies | Veraltete Bibliotheken | Regelmäßige Updates, Dependency-Scanner (OWASP Dependency-Check) |
Zusammenfassung
Secure-Coding-Aufgaben verlangen: (1) Schwachstelle identifizieren (Name + Erklärung), (2) Angriffsweg beschreiben (wie wird sie ausgenutzt?), (3) Korrekten Fix implementieren (Prepared Statement, bcrypt, HTML-Escaping). Die drei wichtigsten: SQL Injection (Prepared Statements), XSS (HTML-Escaping), unsichere Passwörter (bcrypt). Niemals User-Input direkt in SQL, HTML oder Dateipfade einbauen.
Verwandte Lektionen: Situationsaufgabe API · Situationsaufgabe Datenbank · Fachgespräch vorbereiten · und mehrWeitere relevante LektionenOWASP Top 10Passwort-HashingPrüfungssimulation FIAE
