BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP: Fehlermeldung "Security Alert" nach dem Setzen von SERVER_SOFTWARE » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen PHP: Fehlermeldung "Security Alert" nach dem Setzen von SERVER_SOFTWARE
Beiträge zu diesem Thema Autor Datum
 PHP: Fehlermeldung "Security Alert" nach dem Setzen von SERVER_SOFTWARE CDW 26.12.2003 22:01
 RE: PHP: Fehlermeldung "Security Alert" nach dem Setzen von SERVER_SOFTWARE Compuholic 29.12.2003 11:38
 RE: PHP: Fehlermeldung "Security Alert" nach dem Setzen von SERVER_SOFTWARE CDW 29.12.2003 18:47
 RE: PHP: Fehlermeldung "Security Alert" nach dem Setzen von SERVER_SOFTWARE Compuholic 05.01.2004 11:13

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

PHP: Fehlermeldung "Security Alert" nach dem Setzen von SERVER_SOFTWARE       Zum Anfang der Seite springen

ich hab PHP 4.3.3.3 als CGI bei mir drauf und bekomme diese Meldung zu sehen:
Zitat:
Security Alert! The PHP CGI cannot be accessed directly.

This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.

For more information as to why this behaviour exists, see the manual page for CGI security.

For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page.


das merkwürdige dabei ist, dass es erst nach dem Setzen von SERVER_SOFTWARE kommt, wenn ich die Umgebungsvariable nicht setze, dann wird das script "normal" abgearbeitet.
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
<? print("Hello World") ?>  
 <?
$dateiname="log.txt";
if (!file_exists($dateiname)) { $datei=fopen($dateiname,"w"); fclose($datei); }
$datum=date("d.m.Y");
$zeit=date("H:i:s");
$ip=getenv("REMOTE_ADDR");
$browser=getenv("HTTP_USER_AGENT");
$referer=getenv("HTTP_REFERER");+
$datei=fopen($dateiname,"a");
fputs($datei,"$datum\t$zeit\t$ip\t$browser\t$referer\n");
fclose($datei);
print($browser);
?>  

wie man sieht, wird hier die SERVER_SOFTWARE gar net angesprochen... und laut CGI definition ist das eigentlich eine "verzichtbare" Variable...

PS: Server ist eine Eigenentwicklung... dem bringe ich gerade cgi und php bei und man sieht ja was rauskommt Mauer

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von CDW: 26.12.2003 22:02.

26.12.2003 22:01 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Das kann wirklich ein ernstes Sicherheitsproblem darstellen.

Wenn Du z.B. die Adresse: www.test.de/php/scripts/test.php aufrufst enthält wird in $_SERVER['PATH_INFO'] z.B. /scripts/test.php übergeben. Das Document-Root holt sich der Interpreter aus der php.ini und setzt die beiden Variablen einfach zusammen. Das kann aber ausgenutzt werden, indem man einfach ".." verwendet um auf Verzeichnisse außerhalb des Document-Roots zuzugreifen.

Deshalb kann man PHP mit der Option --enable-force-cgi-redirect kompilieren. Dann muß der Webserver die Variable $_SERVER['REDIRECT_STATUS'] setzen. Man kann den Redirect im Apache-Server setzen indem man die "AddHandler" und die "Action" Direktive verwendet.
29.12.2003 11:38 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

Themenstarter Thema begonnen von CDW
      Zum Anfang der Seite springen

ok, danke, jetzt weiß ich auch warum er meckerte:
irgendwo im Code soll das hier stehen(ausgegraben im Selfhtml forum):
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
»» /* Make sure we detect we are a cgi - a bit redundancy here,
»»     but the default case is that we have to check only the first one. */
»» if (getenv("SERVER_SOFTWARE")
»»   || getenv("SERVER_NAME")
»»   || getenv("GATEWAY_INTERFACE")
»»   || getenv("REQUEST_METHOD")) {
»»   cgi = 1;
»» }

es kam also daher dass ich php als Prozess gestartet hatte und über eine pipe die Daten abgelesen - und php merkte gar nicht, dass es als CGI lief und erst als ich die Variable setzte kam eben diese Warnung.

Jetzt versuche ich nicht mehr mit Tricks PHP.exe anzusprechen, sondern die CGI norm umzusetzen. Ich habe momentan die cgi.force_redirect variable bei mir gesetzt (der Server überprüft aber VOR dem Aufrug von PHP ob es so einen Script in dem Ordner gibt)... als Sicherheitszusatz kann (sollte) ich noch den doc_root/user_root setzten. Jedenfalls bin ich für jeden Hinweis dankbar, auch Links sind willkommen, da ich allerlei mögliches zu PHP Programmierung finde, aber nicht wie ich von meinem Server aus anspreche (GET hab ich hinbekommen, aber POST klappt immer noch net Mauer )

Jetzt noch eine Zusatzfrage: mit ".." kann man auf verzeichnisse außerhalb des Document-roots zugreifen - aber da liegen ja gewönlich keine PHP scripts - somit ist es nur eine "bediengte" Sicherheitslücke oder nicht? Ich meine jetzt PHP-CGI, da der Server sich den Pfad jedesmal aus "doc_root"+"anfrage" zusammensetzt und vorher (mit GetFileAttribute smile ) überprüft, ob es die angeforderte Datei im Verzeichniss gibt - wenn nicht, leitet er keine Anfrage an PHP weiter sondern liefert direkt einen 404.
29.12.2003 18:47 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Zitat:
Original von CDW
Jetzt noch eine Zusatzfrage: mit ".." kann man auf verzeichnisse außerhalb des Document-roots zugreifen - aber da liegen ja gewönlich keine PHP scripts - somit ist es nur eine "bedingte" Sicherheitslücke oder nicht? Ich meine jetzt PHP-CGI, da der Server sich den Pfad jedesmal aus "doc_root"+"anfrage" zusammensetzt und vorher (mit GetFileAttribute smile ) überprüft, ob es die angeforderte Datei im Verzeichniss gibt - wenn nicht, leitet er keine Anfrage an PHP weiter sondern liefert direkt einen 404.


Naja, das Problem liegt darin, daß man dadurch evtl. auf Systemdateien. Eine Gute Erklärung habe hier hier gefunden.

http://www.dclp-faq.de/q/q-konfiguration-cgi.html

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von phlox81: 05.01.2004 12:38.

05.01.2004 11:13 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP: Fehlermeldung "Security Alert" nach dem Setzen von SERVER_SOFTWARE

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH