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.