it-swarm.com.de

Überlegungen zum HTTP Content-MD5-Header

Wir überlegen, ob der Content-MD5-Header verwendet werden soll.

Profis:

  • Das CMS ermöglicht es uns, es einfach mit minimalem Overhead einzubinden (zwischengespeicherte Antworten in über 80% der Fälle).
  • Es würde eine weitere Schutzschicht gegen Probleme hinzufügen.

Nachteile:

  • Der Content-Length-Header ist immer vorhanden (auch auf dynamisch erstellten Seiten), sodass der Client keine andere Form der Validierung benötigen sollte.
  • Bisher sind uns keine Probleme durch Korruption bekannt.
  • MD5-Prüfungen verlängern die Ladezeiten von Webseiten.

Punkte:

  • Enthalten bestimmte Medientypen eine eigene Verdauungsform, die dies unnötig macht?
  • Wenn TCP dies bereits anbietet, warum wurde es dann in den HTTP-Standard aufgenommen?
  • Was sind die vorhandenen realen Verwendungen?
  • Ist der MD5-Check vernachlässigbar?

Es ist kein wirkliches Problem, dies zu den Unit-Tests hinzuzufügen und zu implementieren, etwa eine Stunde Arbeit; Wenn es jedoch nachteilig ist, möchten wir, dass es zu den übergeordneten Schnüffeltests hinzugefügt wird, die für Website-Gesundheitschecks verwendet werden.

12
Metalshark

TCP hat bereits eine Fehlerkorrektur, dies hilft Ihnen jedoch nur auf der Ebene TCP. Ein zwischengeschalteter HTTP-Proxy oder ein Lastenausgleich können die Daten auf der HTTP-Ebene beschädigen und anschließend erneut übertragen. Ein HTTP-MD5 ermöglicht es, diese Beschädigung zu erkennen. Der Grund, warum niemand wirklich über dieses Bedürfnis spricht, ist, dass das Problem in der Tat sehr selten ist; Die meisten HTTP-Proxies usw. "funktionieren nur".

Die RFCs spielen auf Sicherheit an. IMHO ist dies so schwach, dass es ignoriert werden sollte - wenn Sie echte Sicherheit und Vertraulichkeit benötigen, dann benötigen Sie HTTPS.

Enthalten bestimmte Medientypen eine eigene Verdauungsform, die dies unnötig macht?

Nichts wirklich Gutes. Aber ein paar kleine Fehler in Fotos, Streaming-Videos usw. sind für Menschen oft nicht wahrnehmbar.

Ich würde sagen, es hängt vom Anwendungsfall ab:

  • Für REST-basierte Webdienste fügt ein Digest eine nützliche Schicht zusätzlicher Fehlerkorrektur hinzu. Siehe dies AWS-Fehler als Beispiel .
  • Für Anwendungen, die geschäftskritische Daten über einfaches HTTP verarbeiten, lohnt sich die Implementierung. Content-MD5 bietet Kunden die Möglichkeit, die End-to-End-Übertragungsintegrität zu überprüfen.
  • Für "normale" Websites, die Text und Medien mit "normalem" Wert bereitstellen, hat der Content-MD5-Header keinen Zweck. Und ich weiß ehrlich gesagt nicht einmal, wie viele Mainstream-Browser (PC, insbesondere mobile) dies tatsächlich unterstützen.
10

MD5-Prüfungen verlängern die Ladezeiten von Webseiten.

Wenn dies zutrifft (und die Latenz nicht ganz unbedeutend ist), würde ich sagen, dass es sich nicht gelohnt hat.

Im Allgemeinen wird der zuletzt geänderte Header meines Erachtens am häufigsten verwendet, um festzustellen, ob sich eine Seite geändert hat. Angenommen, Sie geben dort einen aussagekräftigen Wert an, sehe ich kein Notwendigkeit für den content-md5-Header.

1
Kris