Zum Inhalt springen

Datenrettung in Deutschland zum Festpreis!

100% kostenlose Analyse

Festpreis-Garantie

Wiederherstellung aller marktüblichen Datenträger

CGIDie Abkürzung CGI ist bekannt unter der Bezeichnung Common Gateway Interface und beschreibt einen Standard zum Datenaustausch zwischen Software von Drittanbietern und einem Webserver. Anfragen, die diese Software an den Webserver stellt, werden dynamisch und interaktiv durchgeführt. Die ersten Überlegungen zu diesem CGI-Standard gehen auf das Jahr 1993 zurück.

Datenrettung zum Festpreis

Wir analysieren Defekte an allen gängigen Datenträgern aller Hersteller - kostenlos und unverbindlich.

Sie erhalten anschließend ein Festpreis-Angebot für die Wiederherstellung Ihrer Daten. Kosten fallen nur an, wenn Sie uns beauftragen und wir Ihre Daten retten können!

100% kostenlose Analyse anfordern!

Funktionsweise der CGI-Schnittstelle

Zunächst muss auch der Webserver CGI unterstützen. Er stellt dabei einer Websoftware eine Laufzeitumgebung zur Verfügung, die aus Umgebungsvariablen und Ein- und Ausgabekanälen besteht. Eine Umgebungsvariable stellt beispielsweise den Servernamen dar. Die Variablen helfen dem Anwenderprogramm eine Anfrage an den Webserver zu stellen und dessen Situation darzulegen.

Das Format ist größtenteils standardisiert. Über die Ein- und Ausgabekanäle werden die jeweiligen Datenströme bereitgestellt. So wird über den sogenannten stdout-Kanal eine Anfrage an den Webserver gestellt und mittels stdin der vorhandene Request-Body zurückgeliefert. Der große Vorteil des CGI ist es, HTML-Webseiten dynamisch zu erzeugen.

Früher wurden die meisten Webseiten statisch wiedergegeben, die eine Interaktion mit dem Server nicht einfach machte. Dynamische Webinhalte müssen während der Anfrage noch nicht auf dem Server vorhanden sein. Sie werden über das CGI-Script erst erzeugt. Generell gibt es viele Programmiersprachen, die CGI unterstützen.

Nachteile des CGI

Für jeden CGI-Aufruf muss immer ein neuer Prozess gestartet werden. Daher sind CGI-Ausführungen relativ langsam. Auf vielbesuchten Internetpräsenzen wird CGI heute nicht mehr so oft verwendet. Auch das nachfolgende FastCGI konnte sich nicht durchsetzen. Stattdessen wurden entsprechende Module entwickelt, in denen verschiedene Scriptsprachen verwendet werden und den Interpreter direkt in den Prozess des Webservers einbinden.

So gibt es beispielsweise für den Apache-Webserver die Module mod_per für die Sprache Perl oder mod_python für die Sprache Python. Die Module werden nur einmal beim Starten des Webservers geladen und nicht wie bisher vor jeder einzelnen Anfrage. Eine effiziente Möglichkeit ist auch, die Webprogramme als externe Prozesse zu starten. Diese können dann über FastCGI die jeweiligen Requests des Browsers übergeben. Bei dieser Methode können der Interpreter der Programmiersprache und die Webanwendung selbst die ganze Zeit über geladen sein. Auf diese Weise können Anfragen sehr effektiv bearbeitet werden.

Ist CGI sicher?

Verständlicherweise sind Drittprogramme, also Webanwendungen, die ein Dritter programmiert hat und die auf einem Webserver ausgeführt werden, immer sicherheitsrelevant anzusehen. Von daher muss generell sichergestellt sein, dass ein Programm, welches CGI-Routinen verwendet, nur erlaubte Typen von Programmroutinen ausführt. So darf beispielsweise das Programm nicht unerlaubter Weise Dateien vom Webserver löschen oder kopieren.

Über das Modul suexec schützt sich beispielsweise der Apache-Server vor unerlaubter Ausführung von Cracker-Programmen. Dabei sind die jeweiligen Sicherheitsmechanismen oftmals mehrstufig aufgebaut. Die Sicherheit ist dabei so effizient, dass etliche Administratoren dazu übergegangen sind, auch andere Server-Sprachen über CGI zu starten.

Alternativen zu CGI

Neben CGI werden häufig als serverseitige Technologien FastCGI, Servlet, PHP, ColdFusion, Active Server Pages (ASP) und Server Side Includes (SSI) verwendet. Viele Internetprovider stellen ihren Nutzern entsprechende CGI-Scripte zur Verfügung. Ein beliebtes Script ist beispielsweise der Besuchszähler.

Häufige Fragen und Antworten

Was ist CGI?

Die Abkürzung CGI steht für Common Gateway Interface und bezeichnet einen Standard für den Datenaustausch zwischen Software von Drittanbietern und einem Webserver. Durch CGI können dynamische und interaktive Anfragen an den Webserver gestellt werden.

Wie funktioniert die CGI-Schnittstelle?

Die CGI-Schnittstelle setzt voraus, dass der Webserver CGI unterstützt und eine Laufzeitumgebung bereitstellt. Diese besteht aus Umgebungsvariablen und Ein- und Ausgabekanälen. Über die Umgebungsvariablen kann ein Anwenderprogramm Anfragen an den Webserver stellen und seine Situation beschreiben.

Welche Nachteile hat CGI?

CGI-Aufrufe sind relativ langsam, da für jeden Aufruf ein neuer Prozess gestartet werden muss. Daher wird CGI auf stark frequentierten Websites heutzutage nicht mehr so häufig eingesetzt. Stattdessen werden Module verwendet, in denen Skriptsprachen direkt in den Webserver-Prozess eingebunden werden.

Ist CGI sicher?

Drittanbieter-Software, die über CGI ausgeführt wird, kann potenziell sicherheitsrelevant sein. Daher muss sichergestellt werden, dass nur erlaubte Programmroutinen ausgeführt werden und keine unerlaubten Aktionen wie das Löschen oder Kopieren von Dateien erfolgen. Sicherheitsmechanismen wie das Modul suexec bieten Schutz vor unerlaubter Ausführung von Programmen.

Welche Alternativen gibt es zu CGI?

Neben CGI werden häufig auch FastCGI, Servlet, PHP, ColdFusion, Active Server Pages (ASP) und Server Side Includes (SSI) als serverseitige Technologien verwendet. Viele Internetprovider stellen ihren Nutzern entsprechende CGI-Skripte zur Verfügung.

Quelle für Ihr Zitat: Obenstehende Definition darf in kommerziellen und nicht kommerziellen Publikationen (somit auch in Hausarbeiten, Foren, Social Media Seiten) ohne Rückfrage zitiert werden. Kopieren Sie einfach den nachfolgenden Link für Ihr Zitat:

https://www.it-service24.com/lexikon/c/cgi/

Bildnachweis: iStock.com/RBStocker