Common Gateway Interface
Als Common Gateway Interface (abgekürzt CGI) bezeichnet man eine Schnittstelle, die Daten von einem Webserver zu einem Programm weiterleitet und umgekehrt. Auf diese Weise lassen sich interaktive, sogenannte dynamische Webseiten erzeugen.
Wenn ein Benutzer eine (statische) Webseite aufruft, z.B. indem er eine Webadresse eingibt oder auf einen Link klickt, sendet der Server die angeforderte Seite als Antwort zurück. Füllt der Benutzer hingegen ein Formular aus und sendet die Informationen an den Server, so müssen die Daten von einer Anwendung verarbeitet werden. Hierzu gibt der Server die Informationen an ein kleines Programm weiter, welches die Daten verarbeitet und beispielsweise eine Empfangsbestätigung an den Server zurück sendet. Diese Methode, die ein Bestandteil des Hypertext Tranfer Protocol (HTTP) ist, wird als CGI bezeichnet. Eine alternative Methode, bei der ein interaktives Skript direkt in eine Webseite eingebettet wird, ist die Active Server Page (ASP).
CGI-Programme können in verschiedenen Programmiersprachen verfasst werden, wobei die am meisten verwendeten Sprachen C, C++, Java und PERL sind. Bei der Erstellung einer dynamischen Webseite mit Hilfe von CGI wird im HTML-Code durch den Uniform Resource Locator (URL) auf das Programm verwiesen. Der Server übermittelt die vom Benutzer erhaltenen Informationen an das Programm, und erhält von diesem eine Antwort, die er dann dynamisch in die Webseite einbettet. Der Standard CGI stellt eine einheitliche Konvention für diese Art des interaktiven Austauschs von Daten dar. Die Methode funktioniert deshalb unabhängig von Hardware und Betriebssystem des Servers.
Auf viel besuchten Webseiten verringert die Informationsverarbeitung mit CGI die Geschwindigkeit, mit der die Seite angezeigt wird. Ein Ansatz, um auf stark frequentierten Webseiten die Performance zu verbessern, ist der Standard FastCGI, der das Programm als Prozess startet, so dass nicht bei jedem Aufruf erneut ein Interpreter geladen werden muss. FastCGI und ähnliche Ansätze konnten sich allerdings kaum durchsetzen und kommen nur vereinzelt zum Einsatz.
Da von Dritten erstellte CGI Skripte einen potentiellen Angriffspunkt für Hacker darstellen, müssen die für sie erlaubten Programmroutinen, wie beispielsweise das Löschen von Dateien auf dem Server, zur Sicherheit eingeschränkt werden. Zu diesem Zweck sind HTTP-Server (z.B. Apache) mit speziellen Modulen zum Schutz vor Cracking-Angriffen via CGI ausgestattet. Solche Module bieten in der Regel einen recht zuverlässigen Schutz, so dass die Verwendung von CGI als ausreichend sicher gelten darf.
Wenn ein Benutzer eine (statische) Webseite aufruft, z.B. indem er eine Webadresse eingibt oder auf einen Link klickt, sendet der Server die angeforderte Seite als Antwort zurück. Füllt der Benutzer hingegen ein Formular aus und sendet die Informationen an den Server, so müssen die Daten von einer Anwendung verarbeitet werden. Hierzu gibt der Server die Informationen an ein kleines Programm weiter, welches die Daten verarbeitet und beispielsweise eine Empfangsbestätigung an den Server zurück sendet. Diese Methode, die ein Bestandteil des Hypertext Tranfer Protocol (HTTP) ist, wird als CGI bezeichnet. Eine alternative Methode, bei der ein interaktives Skript direkt in eine Webseite eingebettet wird, ist die Active Server Page (ASP).
CGI-Programme können in verschiedenen Programmiersprachen verfasst werden, wobei die am meisten verwendeten Sprachen C, C++, Java und PERL sind. Bei der Erstellung einer dynamischen Webseite mit Hilfe von CGI wird im HTML-Code durch den Uniform Resource Locator (URL) auf das Programm verwiesen. Der Server übermittelt die vom Benutzer erhaltenen Informationen an das Programm, und erhält von diesem eine Antwort, die er dann dynamisch in die Webseite einbettet. Der Standard CGI stellt eine einheitliche Konvention für diese Art des interaktiven Austauschs von Daten dar. Die Methode funktioniert deshalb unabhängig von Hardware und Betriebssystem des Servers.
Auf viel besuchten Webseiten verringert die Informationsverarbeitung mit CGI die Geschwindigkeit, mit der die Seite angezeigt wird. Ein Ansatz, um auf stark frequentierten Webseiten die Performance zu verbessern, ist der Standard FastCGI, der das Programm als Prozess startet, so dass nicht bei jedem Aufruf erneut ein Interpreter geladen werden muss. FastCGI und ähnliche Ansätze konnten sich allerdings kaum durchsetzen und kommen nur vereinzelt zum Einsatz.
Da von Dritten erstellte CGI Skripte einen potentiellen Angriffspunkt für Hacker darstellen, müssen die für sie erlaubten Programmroutinen, wie beispielsweise das Löschen von Dateien auf dem Server, zur Sicherheit eingeschränkt werden. Zu diesem Zweck sind HTTP-Server (z.B. Apache) mit speziellen Modulen zum Schutz vor Cracking-Angriffen via CGI ausgestattet. Solche Module bieten in der Regel einen recht zuverlässigen Schutz, so dass die Verwendung von CGI als ausreichend sicher gelten darf.