CGI-Environment

From Fritz!Box
Jump to: navigation, search

AVM Wiki >> Environment >> CGI-Environment @ whmf   -   IRC-Chat   -   hu nl it English
Community Modelle Zubehör Environment Konfiguration Shell-Befehle Software Freetz Lexikon Tipps+Tricks Bilder

Urlader-Environment Shell-Environment AVM-Environment CGI-Environment WebCM-Environment Todo

Info
Ähnlich dem Environment einer Shell stellt das CGI-Environment einem Befehl der von einem Webserver gestartet wurde Umgebungsvariablen zur Verfügung. Beim Webserver der FRITZ!Box in ctlmgr wird dieses Environment mit der Library libwebsrv.so erzeugt und umfasst Teile des AVM-Environments sowie einige zusätzliche im CGI-Standard geforderte Variablen.

CGI-Variablen aus dem AVM-Environment

CGI-spezifische Variablen

Variable Firmw Funktion
CLIENTCONNECTION todo IP-Adresse und Port des anfragenden Clients
CONTENT_LENGTH todo Länge des Inhalts bei HTTP-POST
CONTENT_TYPE todo MIME-Typ des Inhalts bei HTTP-POST
GATEWAY_INTERFACE todo Version des CGI-Interfaces
HTTPS todo Signalisiert eine HTTPS-Verbindung (Fernwartung)
HTTP_ACCEPT todo MIME-Typen die der Client akzeptiert
HTTP_ACCEPT_ENCODING todo Encodings die der Client akzeptiert
HTTP_ACCEPT_LANGUAGE todo Sprachen die der Client bevorzugt
HTTP_COOKIE todo Cookies die beim Client gesetzt wurden
HTTP_HOST todo Der HTTP-Hostname unter dem dieser Server aufgerufen wurde
HTTP_REFERER todo Adresse des referierenden Dokumentes falls dies ein Link war.
HTTP_USER_AGENT todo Der User-Agent (Browser) der als Client genutzt wird
LD_LIBRARY_PATH todo Der Such-Pfad für Shared Libraries für diesen CGI-Prozess
PATH todo Der Such-Pfad für Shell-Befehle für diesen CGI-Prozess
PATH_INFO todo Der absolute Pfad zum laufenden Script aus URL-Sicht
PATH_TRANSLATED todo Der absulute Pfad zum laufenden Script im Dateisystem
QUERY_STRING todo Der Query-String Teil der URL rechts vom '?'
REMOTE_ADDR todo IP-Adresse des anfragenden Clients
REQUEST_METHOD todo Die Request-Methode dieser Anfrage (GET, POST, ...)
SCRIPT_NAME todo Der absolute Pfad zum laufenden Script aus der URL-Sicht
SERVER_PROTOCOL todo Die Version des gerade verwendeten HTTP-Protokolls
SERVER_SOFTWARE todo Der Name der Server-Software

CGI Test-Script

Falls man perl installiert hat:

vi /var/tmp/test

Dann dieses Script abspeichern:

#!/usr/bin/perl 

print "Content-Type: text/plain\n\n";

foreach $key (sort keys %ENV) {
  print $key . " = '" . $ENV{$key} . "'\n";
}

Ausführbar machen und mounten:

chmod +x /var/tmp/test
mount -o bind /var/tmp/test /usr/bin/system_status

Dann kann man ohne Passwortabfrage mit dem Environment selbst spielen unter:

http://fritz.box/cgi-bin/system_status

Achtung!
Achtung: Dies ist ein Debugging-Script und nicht auf Sicherheit optimiert. Wer die Fernwartung in's Netz freigegeben hat oder nicht vertrauenswürdige Clienten im LAN hat öffnet für die Dauer des mounts ein potentielles Sicherheitsloch!

Zum Entfernen des mounts genügt:

umount /usr/bin/system_status

Version ohne perl folgt eines Tages...

Siehe auch

Webserver: (99)