RFC 4918 Technische Kernpunkte der Anhänge
Dieses Dokument fasst den Hauptinhalt der Anhänge A-F von RFC 4918 zusammen.
Anhang A. Processing XML Elements (Überlegungen zur Verarbeitung von XML-Elementen)
Schlüsselpunkte
1. XML-Parsing-Anforderungen:
- Muss einen W3C-standardkonformen XML-Parser verwenden
- Muss XML-Namespaces unterstützen
- Muss wohlgeformtes XML verarbeiten
2. Verarbeitung unbekannter Elemente:
- Clients und Server müssen nicht erkannte XML-Elemente ignorieren
- Dies gewährleistet Vorwärtskompatibilität
- Erweiterungen brechen keine bestehenden Implementierungen
3. Whitespace-Verarbeitung:
- Whitespace in Attributwerten ist bedeutungsvoll
- Whitespace in Attributwerten muss beibehalten werden
- xml:space-Attribut ignorieren
4. Sicherheitsüberlegungen:
- Externe Entitäten deaktivieren, um XXE-Angriffe zu verhindern
- XML-Dokumentgröße begrenzen
- Parsing-Tiefe begrenzen
Anhang B. HTTP Client Compatibility (Überlegungen zur HTTP-Client-Kompatibilität)
Kompatibilitätsrichtlinien
1. HTTP/1.1-Clients:
- Basis-HTTP/1.1-Clients können auf WebDAV-Ressourcen zugreifen
- Können jedoch keine WebDAV-spezifischen Funktionen verwenden (Sperren, Eigenschaften usw.)
- Verwenden Standard-HTTP-Methoden (GET, PUT, DELETE)
2. Teilweise WebDAV-Unterstützung:
- Clients können eine Teilmenge von WebDAV implementieren
- Sollten Serverfähigkeiten über OPTIONS entdecken
- Graceful Degradation zu HTTP/1.1-Funktionen
3. Interoperabilität:
- HTTP-Spezifikationen befolgen
- Weiterleitungen korrekt behandeln
- Persistente Verbindungen unterstützen
Anhang C. The 'opaquelocktoken' Scheme (Das opaquelocktoken-Schema und URI)
opaquelocktoken URI-Schema
Definition: Speziell für WebDAV-Sperr-Token entwickeltes URI-Schema
Syntax:
opaquelocktoken:<UUID>
Beispiel:
opaquelocktoken:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
Eigenschaften:
- Global eindeutig: Verwendet UUID zur Gewährleistung der Eindeutigkeit
- Opak: Clients sollten seine interne Struktur nicht parsen
- URL-sicher: Kann in HTTP-Headern und XML verwendet werden
Verwendungsszenarien:
- Von der LOCK-Methode zurückgegebenes Sperr-Token
- Im If-Header gesendetes Sperr-Token
- Im Lock-Token-Header angegebenes Sperr-Token
Unterschied zu anderen URIs:
- Nicht dereferenzierbar (keine entsprechende Ressource)
- Nur zur Identifizierung von Sperren verwendet
- Lebenszyklus identisch mit der Sperre
Anhang D. Lock-null Resources (Sperr-Null-Ressourcen)
Konzept der Sperr-Null-Ressource (LNR)
Definition: Spezieller Ressourcentyp, der in RFC 2518 definiert wurde, erstellt durch Ausführen von LOCK auf einer nicht zugeordneten URL.
Änderungen in RFC 4918:
- RFC 4918 empfiehlt die Verwendung von "gesperrten leeren Ressourcen" anstelle von LNR
- Aber zur Rückwärtskompatibilität können Server LNR weiterhin unterstützen
Gesperrte leere Ressourcen vs LNR
| Merkmal | Gesperrte leere Ressource (empfohlen) | Lock-Null Resource (Kompatibilität) |
|---|---|---|
| Erstellungsmethode | LOCK auf nicht zugeordneter URL | LOCK auf nicht zugeordneter URL |
| GET-Verhalten | Gibt 200 und leeren Inhalt zurück | Gibt 404 zurück |
| Eigenschaften | Normale Ressourceneigenschaften | Spezielle LNR-Eigenschaften |
| Sichtbarkeit | Als Sammlungsmitglied sichtbar | Möglicherweise nicht sichtbar |
| MKCOL | Schlägt fehl (405) | Wird in Sammlung konvertiert |
Client-Kompatibilitätsempfehlungen:
- Nach Ausführung von LOCK auf einer nicht zugeordneten URL PUT verwenden, um Inhalt hinzuzufügen
- Nicht auf spezifisches Verhalten von GET oder MKCOL verlassen
- Nicht auf spezifische Eigenschaften von LNR verlassen
Anhang E. Guidance for Clients Desiring to Authenticate (Leitfaden für Clients, die sich authentifizieren möchten)
Authentifizierungserkennung
Problem: Wie erkennt ein Client, dass eine Ressource Authentifizierung erfordert?
Methode 1 - Proaktive OPTIONS-Anfrage:
OPTIONS /resource HTTP/1.1
Host: example.com
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="WebDAV"
Methode 2 - Operation versuchen und 401 behandeln:
PROPFIND /resource HTTP/1.1
Host: example.com
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="WebDAV"
Best Practices für Authentifizierung
1. Mehrere Authentifizierungsschemata unterstützen:
- Basic-Authentifizierung (erfordert HTTPS)
- Digest-Authentifizierung
- OAuth 2.0 Bearer-Token
- Client-Zertifikate
2. Authentifizierungsinformationen cachen:
- Informationen für denselben Realm cachen
- Geeignete Timeouts implementieren
- Sensible Informationen sicher speichern
3. Authentifizierungsfehler behandeln:
- Klare Fehlermeldungen bereitstellen
- Erneute Authentifizierung erlauben
- Kontosperrung vermeiden
4. Sicherheitsüberlegungen:
- Immer HTTPS verwenden, um Anmeldeinformationen zu übertragen
- Keine Passwörter in URL einschließen
- Rate Limiting implementieren, um Brute-Force-Angriffe zu verhindern
Anhang F. Summary of Changes from RFC 2518 (Zusammenfassung der Änderungen gegenüber RFC 2518)
RFC 4918 obsoliert RFC 2518, wichtige Änderungen umfassen:
F.1 Änderungen bei Client- und Serverimplementierungen
1. Entfernung von Sperr-Null-Ressourcen (LNR):
- Empfiehlt die Verwendung von "gesperrten leeren Ressourcen"
- Vereinfacht die Implementierung
- Verbessert die Interoperabilität
2. Klarstellung der If-Header-Syntax:
- Klarere Matching-Regeln
- Verbesserte Beispiele
- Beseitigt Mehrdeutigkeiten
3. Sammlungsverhalten:
- Klärt DELETE-Verhalten bei Sammlungen
- Klärt die Verwendung des Depth-Headers
- Verbessert Fehlerbehandlung
4. Eigenschaftsverarbeitung:
- Klärt Live-Eigenschaften vs. tote Eigenschaften
- Verbessert PROPPATCH-Atomaritätsanforderungen
- Klärt XML-Verarbeitung von Eigenschaftswerten
F.2 Änderungen bei Serverimplementierungen
1. 207 Multi-Status-Antwort:
- Strengere Formatanforderungen
- Verbesserte Fehlerberichterstattung
- Erforderliches href-Element
2. Sperrverhalten:
- Klärt Sperr-Aktualisierungsmechanismus
- Verbessert Timeout-Behandlung
- Klärt Anforderungen zur Sperr-Token-Übermittlung
3. COPY/MOVE-Semantik:
- Klärt Overwrite-Header-Verhalten
- Verbessert Zielressourcenbehandlung
- Klärt Auswirkungen von Sperren
F.3 Weitere Änderungen
1. Sicherheitsverbesserungen:
- Fügt XML-Sicherheitsrichtlinien hinzu
- Verbessert DoS-Schutzempfehlungen
- Klärt Authentifizierungsanforderungen
2. Interoperabilitätsverbesserungen:
- Klarere Spezifikationen
- Mehr Beispiele
- Beseitigt Implementierungsmehrdeutigkeiten
3. Veraltete Funktionen:
- Einige optionale Funktionen von RFC 2518
- Vereinfacht Konformitätsanforderungen
- Reduziert Implementierungsaufwand
Zusammenfassung der Anhänge
Die Anhänge bieten folgende wichtige Informationen:
- Implementierungsrichtlinien (A, B): XML-Verarbeitung und HTTP-Kompatibilität
- Technische Details (C, D): Sperr-Token-URI-Schema und Sperr-Null-Ressourcen
- Praktische Empfehlungen (E): Richtlinien zur Authentifizierungsimplementierung
- Entwicklungsgeschichte (F): Änderungen von RFC 2518 zu RFC 4918
Diese Anhänge sind sehr wertvoll für die Implementierung hochwertiger WebDAV-Clients und -Server.