Zum Hauptinhalt springen

8. Security Considerations (Sicherheitsüberlegungen)

Dieser Abschnitt soll Entwickler, Informationsanbieter und Benutzer über bekannte Sicherheitsprobleme informieren, die spezifisch für HTTP-Bedingungsanfragen sind.

Disclosure of Entity Tags (Offenlegung von Entity-Tags)

Entity-Tags werden oft auf "nicht vorgesehene" Weise verwendet, z.B. für die Cache-Synchronisation über mehrere Vermittler hinweg oder als Mittel zur Identifizierung archivierter Snapshots von Inhalten. Das Verständnis, wie Entity-Tags für eine bestimmte Ressource generiert werden, ist anwendungsspezifisch und oft proprietär. Die Offenlegung von Entity-Tags, die Informationen über Anwendungslogik oder Zwischenspeicher-Verhalten preisgeben, könnte Informationen darüber offenbaren, wie die Zugangskontrollen dieser Anwendung umgangen oder Zwischenspeicher manipuliert werden können.

Ein Ursprungsserver sollte berücksichtigen, dass einige Entity-Tags Informationen offenlegen könnten, die in bestimmten Kontexten als sensibel betrachtet werden könnten. Beispiele umfassen:

  • Versionskontrollinformationen (z.B. Revisionsnummern, Branchnamen)
  • Hashes oder Signaturen, die von Inhalten mit Zugriffsbeschränkungen abgeleitet sind
  • Muster, die interne Implementierungsdetails offenbaren

Denial of Service Using Conditional Requests (Denial of Service unter Verwendung bedingter Anfragen)

Obwohl bedingte Anfragen die Netzwerkbandbreite und den Verarbeitungsaufwand reduzieren können, indem sie die Wiederverwendung gecachter Darstellungen ermöglichen, sind sie kein ausreichender Schutz gegen Denial-of-Service-Angriffe. Böswillige Clients können immer noch viele bedingte Anfragen für verschiedene Ressourcen oder dieselbe Ressource mit ungültigen oder sich ständig ändernden bedingten Header-Feldern stellen und damit die Fähigkeit des Servers zur Antwort überwältigen.

Ein Server sollte die Verwendung bedingter Anfragen überwachen und Rate-Limiting oder andere Schutzmaßnahmen in Betracht ziehen, wenn abnormale Muster erkannt werden.

Protocol Element Length (Protokollelementlänge)

Server sollten vernünftige Grenzen für die Größe und Anzahl von bedingten Header-Feldwerten setzen, insbesondere für Entity-Tags in If-Match und If-None-Match Header-Feldern, da es keine Standardlängenbeschränkung für Entity-Tag-Werte gibt. Extrem lange Entity-Tags oder eine übermäßige Anzahl von Entity-Tags in einem einzigen Header-Feld könnten verwendet werden, um Serverressourcen zu erschöpfen.