Das Fotonexus-Wiki befindet sich im Testbetrieb.
Common Gateway Interface
Aus Fotonexus.
Das Common Gateway Interface (CGI) – in etwa Allgemeine Vermittlungsrechner-Schnittstelle – ist ein Standard für den Datenaustausch zwischen einem Webserver und dritter Software, die Anfragen bearbeitet.
CGI ist eine schon länger bestehende Variante, Webseiten dynamisch bzw. interaktiv zu machen.
Ein Webserver, der CGI unterstützt, stellt der externen Software eine Laufzeitumgebung zur Verfügung, die insbesondere aus folgendem besteht:
- Umgebungsvariablen (z. B. „
SERVER_NAME“), die dem Programm helfen, sich über die Anfrage, Webserver-Einstellung und -Situation zu informieren. Die Bezeichnungen sowie das Format der Inhalte sind größtenteils standardisiert. - Bereitstellung von Ein- und Ausgabekanälen. Der stdout-Kanal mit der Antwort des Webservers verknüpft, stdin mit eventuell vorhanden POST-Daten.
CGI-Programme können also in vielen Programmiersprachen geschrieben sein, da die Anforderungen über das oben genannte nicht hinaus gehen.
Ein Nachteil der CGI-Ausführung ist ihre relativ geringe Geschwindigkeit, da für jeden CGI-Aufruf eine neue Programm-Instanz ausgeführt wird. Auf hochfrequentierten Seiten wird CGI daher heutzutage nicht mehr so oft eingesetzt, denn selbst Ansätze wie FastCGI, welches gewisse Nachteile von CGI aufhebt, konnten sich zumindest nicht auf breiter Front durchsetzen.
Um diesem Problem zu begegnen, gibt es mittlerweile z. B. für den Apache-Webserver Plugins, die verschiedene beliebte Sprachen (mod_perl für Perl, mod_python für Python, etc.) mit nativer Geschwindigkeit ähnlich einbinden, allerdings ist dies kein CGI.
Dass mit CGI Programme auf dem Webserver ausgeführt werden können, die ein Dritter erstellt hat, ist in höchstem Maße sicherheitsrelevant. Daher muss sichergestellt sein, dass ein über CGI gestartetes Programm nur bestimmte, eingeschränkte Typen von Programmroutinen ausführen darf (z. B. kein Löschen von Dateien des Webservers u. ä.). Bei dem Apache-Webserver wird die Ausführung von CGI-Programmen mit Hilfe des Modules suexec gegen solche Cracker-Angriffe gesichert, die das Eindringen als Root-User zum Ziel haben. Die Sicherheitsmaßnahmen sind dabei mehrstufig aufgebaut und so streng, dass viele Server-Administratoren dazu übergegangen sind, auch andere serverseitige Sprachen über CGI laufen zu lassen. So wird zum Beispiel PHP bei den meisten Providern als CGI-Modul eingebunden (dadurch verliert PHP allerdings seinen Geschwindigkeitsvorsprung gegenüber CGI).
Weitere serverseitige Technologien:
Weblinks
- SELFHTML: Webserver/CGI
- Spezifikation
- XWolf Portal – Realm of CGI
- HTMLWorld: CGI/Perl-Einführung
- RRZK: CGI-Sicherheits-Hinweise
- Originalspezifikation (engl.)
| Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Common_Gateway_Interface, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation. |
