Skip to content
Snippets Groups Projects
Commit 08e51df5 authored by Hussam Moammar's avatar Hussam Moammar
Browse files

Edit Woche 11.md

parent d6e72afd
No related branches found
No related tags found
No related merge requests found
...@@ -124,8 +124,60 @@ Untersuchen Sie die verschiedenen Notationen zur Spezifizierung von Versionsanfo ...@@ -124,8 +124,60 @@ Untersuchen Sie die verschiedenen Notationen zur Spezifizierung von Versionsanfo
- **Caret (^)** - **Caret (^)**
- **Platzhalter (*)** - **Platzhalter (*)**
### Hinweise: ## Antwort
- Achten Sie darauf, die Szenarien klar zu begründen.
- Diskutieren Sie potenzielle Risiken und Nutzen jeder Notation basierend auf Ihren Beispielen. ### **Aufgabe 1: Analyse eines Vorfalls mit Paketmanagern**
#### **1. Problemquelle**
**Vorfalldetails:** "event-stream"-Backdoor (2018) in npm
- Ein Open-Source-Maintainer übergab die Kontrolle eines npm-Pakets an einen neuen Entwickler.
- Dieser fügte eine bösartige Abhängigkeit hinzu, die Bitcoin-Wallets ausspähte.
#### **2. Auswirkungen und Folgen**
- **Unmittelbar:** Zahlreiche Projekte nutzten "event-stream" und wurden kompromittiert.
- **Langfristig:** Vertrauensprobleme in Open-Source-Community, Diskussion über Paketübernahmen.
#### **3. Ursache und Schwachstellen**
- Keine Prüfung bei Übergabe des Pakets an einen neuen Maintainer.
- Fehlende Sicherheitsmechanismen in npm zur Detektion schädlicher Updates.
#### **4. Reaktionen und Lösungen**
- npm verbesserte Richtlinien für Paket-Transfers.
- Unternehmen implementierten strengere Abhängigkeitsprüfungen (z. B. Lockfiles & Audits).
- Empfehlung: Signierte Pakete und Abhängigkeitsüberwachung mit Tools wie Snyk.
---
### **Aufgabe 2: Untersuchung von Semantic Versioning**
#### **1. Exakte Version (`1.2.3`)**
**Szenario:** Ein Unternehmen benötigt eine getestete, stabile Version.
**Vorteil:** Keine unerwarteten Änderungen.
**Nachteil:** Keine Updates für Bugfixes oder Security-Patches.
#### **2. Bereichsoperatoren (`>=1.2.0 <2.0.0`)**
**Szenario:** Ein Framework unterstützt alle `1.x`-Versionen, aber nicht `2.0.0`.
**Vorteil:** Flexibilität für Patch- und Minor-Updates.
**Nachteil:** Major-Updates ausgeschlossen, potenzielle Sicherheitslücken.
#### **3. Intervall-Notation (`[1.2.0,2.0.0)`)**
**Szenario:** Eine API-Bibliothek garantiert Kompatibilität für `1.2.0` bis `2.0.0`.
**Vorteil:** Strikte Kontrolle über erlaubte Versionen.
**Nachteil:** Umständlicher als `>=` und `<`.
#### **4. Tilde `~1.2.3`**
**Szenario:** Ein Projekt benötigt `1.2.x`, aber nicht `1.3.0`.
**Vorteil:** Erlaubt nur Bugfix-Updates (`1.2.4`, `1.2.5`).
**Nachteil:** Keine neuen Features (z. B. `1.3.0` bleibt ausgeschlossen).
#### **5. Caret `^1.2.3`**
**Szenario:** Eine Bibliothek akzeptiert Updates innerhalb der gleichen Major-Version (`1.x`).
**Vorteil:** Sicherheits- und Feature-Updates (`1.3.0`, `1.4.0` erlaubt).
**Nachteil:** Potenziell inkompatible Änderungen in Minor-Releases.
#### **6. Platzhalter `1.*`**
**Szenario:** Ein System soll immer die neueste `1.x`-Version erhalten.
**Vorteil:** Maximale Flexibilität.
**Nachteil:** Keine Kontrolle über neue Minor-Releases, potenzielle Breaking-Changes.
--- ---
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment