Sicherheitstests - Grundlagen des HTTP-Protokolls

Das Verständnis des Protokolls ist sehr wichtig, um einen guten Überblick über Sicherheitstests zu erhalten. Sie werden die Bedeutung des Protokolls erkennen können, wenn wir die Paketdaten zwischen dem Webserver und dem Client abfangen.

HTTP-Protokoll

Das Hypertext Transfer Protocol (HTTP) ist ein Protokoll auf Anwendungsebene für verteilte, kollaborative Hypermedia-Informationssysteme. Dies ist die Grundlage für die Datenkommunikation für das World Wide Web seit 1990. HTTP ist ein generisches und zustandsloses Protokoll, das auch für andere Zwecke verwendet werden kann, indem die Anforderungsmethoden, Fehlercodes und Header erweitert werden.

Grundsätzlich ist HTTP ein TCP / IP-basiertes Kommunikationsprotokoll, mit dem Daten wie HTML-Dateien, Bilddateien, Abfrageergebnisse usw. über das Web übertragen werden. Es bietet eine standardisierte Möglichkeit für Computer, miteinander zu kommunizieren. Die HTTP-Spezifikation gibt an, wie die angeforderten Daten der Clients an den Server gesendet werden und wie die Server auf diese Anforderungen reagieren.

Grundfunktionen

Es gibt drei grundlegende Funktionen, die HTTP zu einem einfachen, aber leistungsstarken Protokoll machen:

  • HTTP is connectionless- Der HTTP-Client, dh der Browser, initiiert eine HTTP-Anfrage. Nach einer Anfrage trennt sich der Client vom Server und wartet auf eine Antwort. Der Server verarbeitet die Anforderung und stellt die Verbindung zum Client wieder her, um die Antwort zurückzusenden.

  • HTTP is media independent- Jeder Datentyp kann per HTTP gesendet werden, sofern sowohl der Client als auch der Server wissen, wie mit dem Dateninhalt umzugehen ist. Dies ist sowohl für den Client als auch für den Server erforderlich, um den Inhaltstyp unter Verwendung des entsprechenden MIME-Typs anzugeben.

  • HTTP is stateless- HTTP ist verbindungslos und dies ist eine direkte Folge davon, dass HTTP ein zustandsloses Protokoll ist. Der Server und der Client kennen sich nur während einer aktuellen Anforderung. Danach vergessen sich beide. Aufgrund dieser Art des Protokolls können weder der Client noch der Browser Informationen zwischen verschiedenen Anforderungen auf den Webseiten speichern.

HTTP / 1.0 verwendet für jeden Anforderungs- / Antwortaustausch eine neue Verbindung, während die HTTP / 1.1-Verbindung für einen oder mehrere Anforderungs- / Antwortaustausche verwendet werden kann.

Die Architektur

Das folgende Diagramm zeigt eine sehr grundlegende Architektur einer Webanwendung und zeigt, wo sich HTTP befindet -

Das HTTP-Protokoll ist ein Anforderungs- / Antwortprotokoll, das auf der Client / Server-Architektur basiert, wobei Webbrowser, Roboter und Suchmaschinen usw. als HTTP-Clients und der Webserver als Server fungieren.

  • Client - Der HTTP-Client sendet eine Anforderung in Form einer Anforderungsmethode, eines URI und einer Protokollversion an den Server, gefolgt von einer MIME-ähnlichen Nachricht, die Anforderungsmodifikatoren, Clientinformationen und möglichen Textinhalt über eine TCP / IP-Verbindung enthält.

  • Server - Der HTTP-Server antwortet mit einer Statuszeile, einschließlich der Protokollversion der Nachricht und eines Erfolgs- oder Fehlercodes, gefolgt von einer MIME-ähnlichen Nachricht, die Serverinformationen, Entitätsmetainformationen und möglichen Entitätskörperinhalt enthält.

HTTP - Nachteile

  • HTTP ist kein vollständig gesichertes Protokoll.

  • HTTP verwendet Port 80 als Standardport für die Kommunikation.

  • HTTP wird auf der Anwendungsschicht ausgeführt. Es müssen mehrere Verbindungen für die Datenübertragung erstellt werden, was den Verwaltungsaufwand erhöht.

  • Für die Verwendung von HTTP sind keine Verschlüsselungs- / digitalen Zertifikate erforderlich.

Details zum HTTP-Protokoll

Um das HTTP-Protokoll eingehend zu verstehen, klicken Sie auf einen der folgenden Links.

  • HTTP Parameters

  • HTTP Messages

  • HTTP Requests

  • HTTP Responses

  • HTTP Methods

  • HTTP Status Codes

  • HTTP Header Fields

  • HTTP Security