CGI-Environment
From Fritz!Box
| 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 |
| Ä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: 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)
- Sektionen: Webinterface, WebCM-Environment, User-Interface-Module, CGI-Environment, SSI-Direktiven
- Lexikon: URL, HTTP, HTTPS, CGI, MIME, HTML, SSI, JavaScript, Ajax, Lua, Applet, Flash, Java
- Lexikon: Telekom-Webinterface, Congstar-Webinterface
- Urlader: webgui_pass, var
- CONFIG_: WEBSRV, WEBUSB, WEBCM_INTERPRETER, SESSIONID, REMOTE_HTTPS, UTF8, LUA, MYFRITZ
- CONFIG_: HANSENET_NO_GUI, HTML_STYLE_T_HOME, HTML_STYLE_T_COM, HTML_STYLE_CONGSTAR
- WebCM: isWebSrv, isSessonId
- Webinterface: Ansicht, Expertenansicht, Inhaltsverzeichnis, Fernwartung, FRITZ!Box-Kennwort
- UI-Module: remoteman, security
- Konfig: mime.cfg, htmltext.db, htmltext_de.db, crossdomain.xml, crossdomain-template.xml
- Konfig: x_remoteSCPD.xml, html/, html/ (nas)
- Tempfiles: config.def, htmltext.db (ram), html/ (ram), html.nas/ (ram), flash.html
- Tempfiles: openssl.cnf, webcm.debug, websrv.debug, webcm_interpreter.log, uidebug.txt
- Tempfiles: ctlmgr.pid, websrv.pid, capture*.pid, crossdomain.xml (ram)
- Befehle: S10-html, S11-config_def, ctlmgr, websrv
- Befehle: webcm, firmwarecfg, system_status, capture_notimeout, luacgi, webtrace, cgiMain, tr064cgi
- Befehle: openssl_genrsa, openssl_req
- Libraries: libwebsrv.so, libtiinterpreter.so, liblua.so, libluaxml.so, libluatextdb.so, libwebusb.so
- Kernel: avm_net_trace.ko
- Devices: kdsldptrace, avm_net_trace
- Ports: Port 80, Port 443, Port 8080, me_webcm*.ctl, me_luacgi*.ctl
- Adressen: fritz.box, fritz.nas, myfritz.box, myfritz.net, fritz.repeater, voipgateway.avm
- Adressen: speedport.ip, speedport.bridge, sinus.ip, congstar.box, alice.box, multi.box
- Freetz: REMOVE_MYFRITZ