Definition
Ein HTTP-Proxy, auch als Internet-Proxy bekannt, ist ein spezieller Servertyp, der zwischen Webservern und Clients sitzt. Er fängt Anfragen von Clients ab, leitet sie an Webserver weiter und sendet die Ergebnisse zurück an den Client. Diese Funktionalität trägt wesentlich zur Steigerung von Performance, Sicherheit und Datenschutz bei.
Überblick
Auch wenn Web-Clients häufig direkt mit Webservern kommunizieren, kann dieser Ansatz sowohl für Clients als auch für Server gewisse Risiken in Bezug auf Performance und Sicherheit mit sich bringen. HTTP Proxys, auch als Internet-Proxys bekannt, bieten eine Möglichkeit, diese Risiken zu managen und tragen dazu bei, die Sicherheit und Effizienz für alle Beteiligten beim Zugriff auf Websites und Webanwendungen zu erhöhen.
Ein HTTP Proxy oder Proxy Server, auch als Internet-Proxy bekannt, ist ein Vermittler zwischen einem Webserver und einem Client. Die Aufgabe eines Proxy-Servers besteht darin, Anfragen von Clients an Server weiterzuleiten und Serverantworten zurück an die Clients zu senden. Beim Verarbeiten dieser Anfragen kann der HTTP Proxy Maßnahmen ergreifen, die die Performance oder die Sicherheit verbessern.
Um vollständig zu verstehen, was HTTP Proxys leisten, ist es hilfreich zu wissen, wie Web-Traffic funktioniert. Das Web – also jener Teil des Internets, der Websites, Webanwendungen und andere Inhalte über das HTTP-Protokoll bereitstellt – basiert auf einem Client-Server-Modell. Das bedeutet, dass Webserver Inhalte wie HTML- und JavaScript-Dateien, aus denen eine Website besteht, hosten und auf Anfrage an Clients ausliefern. Wenn Sie eine Website in einem Browser auf Ihrem Computer öffnen, agiert Ihr Browser als Client und stellt eine Verbindung zum Webserver der Website her, um die Inhalte anzufordern.
Proxy Server sind keine Voraussetzung für die Übertragung von Daten zwischen Webservern und Clients. Standardmäßig wird der meiste Web-Traffic nicht über einen Proxy geleitet; stattdessen verbinden sich Clients in der Regel direkt mit Servern, und die Antworten der Server gehen direkt an die Clients zurück. Dennoch kann ein Proxy sowohl auf Seiten des Clients als auch auf Seiten des Servers implementiert werden, um als Vermittler zu agieren.
Vorteile und Nachteile von HTTP Proxys
Es gibt mehrere Vorteile, den Webverkehr über einen Internet-Proxy zu leiten, anstatt Clients direkt mit Servern kommunizieren zu lassen:
- Erhöhte Sicherheit: HTTP Proxys können bösartige Anfragen blockieren, bevor sie die Server erreichen, und erschweren es Angreifern dadurch, schädlichen Code in eine Website einzuschleusen. Außerdem verschleiern sie die Identität der Server, da Clients im Internet nur den Proxy sehen und nicht den dahinterliegenden Server. Dadurch wird es für Angreifer schwieriger, Informationen über die Softwarekonfiguration eines Webservers zu sammeln und gezielte Angriffe durchzuführen.
- Verbesserter Datenschutz: HTTP Proxys können sensible Daten – wie Namen – aus Webanfragen und -antworten herausfiltern und so die Privatsphäre der Nutzer schützen. Da der Datenverkehr über einen Proxy läuft, bleiben zudem die Identitäten von Client und Server voreinander verborgen. Dies ermöglicht es etwa, Websites zu besuchen, ohne die eigene IP-Adresse oder den geografischen Standort preiszugeben.
- Bessere Performance: Proxys können die Leistung von Websites und Webanwendungen verbessern, indem sie häufig angeforderte Inhalte zwischenspeichern, Daten komprimieren, um Bandbreite zu sparen, und überflüssige Anfragen blockieren oder verwerfen.
Der größte Nachteil eines HTTP Proxys bzw. Internet-Proxys besteht darin, dass er unter bestimmten Umständen die Performance beeinträchtigen kann. Die Verarbeitungsschritte, die ein Proxy Server bei der Analyse und Filterung des Webverkehrs durchführt, können die Datenübertragung zwischen Client und Server verlangsamen und zu Problemen wie längeren Ladezeiten von Webseiten führen. Zudem kann sich die Latenz erhöhen und die Fehlerrate steigen, wenn der über den Proxy geleitete Datenverkehr einen deutlich längeren Weg zurücklegen muss als bei einer direkten Verbindung zwischen Client und Server.
Funktionsweise von HTTP Proxys
HTTP Proxys arbeiten nach folgendem Ablauf:
- Empfang der Webanfrage: Der Proxy erhält eine Webanfrage, beispielsweise eine Nutzeranfrage zum Anzeigen der Inhalte einer Website.
- Analyse der Anfrage: Der Proxy analysiert die eingehende Anfrage und prüft, ob bestimmte Maßnahmen erforderlich sind – etwa das Herausfiltern bestimmter Informationen oder das vollständige Blockieren der Anfrage, falls es sich um eine bösartige handelt.
- Weiterleitung oder Blockierung: Falls die Anfrage zulässig ist, leitet der Proxy eine ggf. modifizierte Version an den Webserver weiter. Wenn die Anfrage blockiert wird, verwirft der Proxy sie ohne Weiterleitung.
- Verarbeitung der Serverantwort: Der Proxy empfängt die Antwort des Webservers und sendet sie an den Client zurück. In einigen Fällen kann der Proxy die Antwort verändern, etwa durch Datenkomprimierung zur Reduzierung der Netzwerklast – üblicher ist jedoch die Modifikation eingehender Anfragen als der Serverantworten.
Welche Funktionen kann ein HTTP Proxy Server übernehmen?
Die wichtigste Funktion eines HTTP Proxyservers ist der zweite Schritt im oben beschriebenen Ablauf – die Analyse von Anfragen und die Modifikation ihres Inhalts.
Die vom Proxyserver vorgenommenen Änderungen basieren auf vordefinierten Regeln, die auf dem Server konfiguriert sind. Zu den häufigsten inhaltlichen Anpassungen zählen:
- Anfrageblockierung: HTTP Proxys können so konfiguriert werden, dass sie Anfragen blockieren, die von bestimmten IP-Adressen oder Domains stammen oder bestimmte Dateitypen enthalten. So kann ein Proxy beispielsweise verhindern, dass ein Client eine .exe-Datei hochlädt.
- Datenfilterung: Ein Proxyserver kann sensible Informationen wie persönliche Namen oder Adressen aus einer HTTP-Anfrage entfernen oder anonymisieren, bevor diese an den Zielserver weitergeleitet wird.
- Datenkomprimierung: Durch Komprimierung lässt sich die Datenmenge reduzieren, die über das Netzwerk übertragen werden muss – was in manchen Fällen die Performance verbessert.
- Datenverschlüsselung: Einige HTTP Proxys sind in der Lage, unverschlüsselte Anfragen bei der Weiterleitung zu verschlüsseln. Die Verschlüsselung schützt die Daten auf dem Übertragungsweg davor, von Angreifern mitgelesen zu werden – es sei denn, diese verfügen über den passenden Schlüssel zur Entschlüsselung.
HTTP Proxys vs. Reverse Proxys
Der Begriff HTTP Proxy kann im weiteren Sinne jeden Proxyserver bezeichnen, der als Vermittler für Webverkehr fungiert. Im engeren Sinne unterscheidet man jedoch zwischen HTTP Proxys und Reverse Proxys.
Streng genommen ist ein HTTP Proxy ein Proxyserver, der zwischen einem Client und einem Webserver sitzt und es dem Client ermöglicht, Anfragen an den Server zu senden, ohne dessen Identität oder Standort preiszugeben. Ein Reverse Proxy hingegen befindet sich vor einem oder mehreren Webservern und nimmt eingehende Anfragen im Namen dieser Server entgegen. Dadurch können die Webserver vor direkten Client-Anfragen geschützt werden.
Der Unterschied zwischen HTTP Proxys und Reverse Proxys liegt in den Anwendungsfällen. Der Hauptzweck eines HTTP Proxys besteht darin, die Identität von Clients zu verschleiern – typischerweise aus Datenschutzgründen oder um auf einen Webserver zuzugreifen, der in der Region des Nutzers blockiert ist. Ein Reverse Proxy hingegen dient in erster Linie der Erhöhung der Sicherheit in Unternehmen, indem er Webserver vom Internet isoliert und bösartige Anfragen abfängt, bevor sie die Server erreichen.
Arten von HTTP Proxys: Transparente vs. explizite Proxys
Aus Sicht sowohl des Webclients als auch des Servers können Proxys entweder transparent oder explizit sein.
Bei einem transparenten Proxy erkennt der Client nicht, dass seine Anfragen über einen HTTP Proxy laufen, bevor sie die Webserver erreichen. Dieses Setup ist häufig in Szenarien anzutreffen, in denen ein Unternehmen Internet-Proxys einsetzt, um eingehende Webanfragen entgegenzunehmen und an die eigenen Webserver weiterzuleiten – typischerweise sind diese Server durch eine Firewall geschützt und nicht direkt aus dem Internet erreichbar (in diesem Fall handelt es sich um einen Reverse-Proxy).
Durch diese Architektur kann das Unternehmen bösartige Anfragen filtern und seine Webserver effektiv vom Internet abschirmen. Für die Clients, die auf die Webserver des Unternehmens zugreifen, ist dabei nicht erkennbar, dass ihre Anfragen durch Proxyserver geleitet werden.
Ein expliziter Proxy (oder nicht transparenter Proxy) ist ein Proxy, bei dem der Client und/oder der Server wissen, dass der Datenverkehr über einen zwischengeschalteten Proxy geleitet wird. Ein typisches Einsatzszenario für explizite Proxys ist die bewusste Nutzung eines Internet-Proxys durch einen Nutzer, um seine Identität gegenüber Webservern zu verbergen. Der Proxy ist in diesem Fall für den Client erkennbar, da der Nutzer ihn gezielt konfiguriert hat.
Auch der Webserver kann möglicherweise erkennen, dass ein Proxy verwendet wird – etwa durch HTTP-Header in eingehenden Anfragen, die Informationen enthalten, die auf einen Proxy hinweisen. Manche Proxys versuchen jedoch, ihre Existenz zu verschleiern, indem sie Anfragen so weiterleiten, dass sie wie direkte Clientanfragen erscheinen. Daher ist es für Webserver nicht immer eindeutig feststellbar, ob eine Anfrage über einen Proxy gestellt wurde.
Mit JFrog und HTTP Proxys Ihre Sicherheit verbessern
JFrog schützt Ihre Software-Lieferkette und Artefakte, indem Pakete, Container-Images, Quellcodedateien und andere kritische Software-Ressourcen zentral verwaltet und gescannt werden. Gleichzeitig trägt die Einrichtung eines HTTP Proxys dazu bei, Ihre sensibelsten Assets – wie Websites und Anwendungen – vor Missbrauch durch externe Angreifer zu schützen.
Erfahren Sie mehr darüber, wie JFrog und HTTP Proxys gemeinsam zur Stärkung der Unternehmenssicherheit beitragen – machen Sie eine Online-Tour oder vereinbaren Sie jederzeit eine Demo.