Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Installation und Konfiguration  Teil von  Sicherheit
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Angriffsszenarien




Angriffe auf Webserver sind häufig und treffen – früher oder später – jeden aktiven Webserver. Inzwischen scheinen nicht nur einige wenige engagierte Hacker Jagd auf bekannte Sites zu machen. Mit den im Internet grassierenden Hacker-Tools und Exploits entwickelt sich eine Art Volkssport. Dabei geht es oftmals um den Lerneffekt und den Spaß an der Sache, keine Site ist unbedeutend und unwichtig genug, um nicht doch zum Opfer werden zu können. Auch wenn keine wichtigen Daten vorhanden sind, kann ein Angriff zu Schäden führen und kostet zumindest die wertvolle Zeit des Systemadministrators.


Parameterattacke

Die Installation als CGI-Programm ist der wichtigste Sicherheitsschritt. Dem steht die Leistung entgegen – CGI ist als universelle Schnittstelle ausgesprochen langsam. Zum Hintergrund ist es wichtig zu wissen, wie die PHP-Binärdateien arbeiten. Generell wird jeder Parameter als Kommandozeilenparameter interpretiert. Dies entspricht dem Aufruf des PHP-Interpreters am Prompt mit PHP. Nun könnte ein Angreifer in seinem Browser die URL wie folgt manipulieren:
www.domain.de/cgi-bin/php?/ect/password
PHP würde den QueryString, die Zeichen nach dem ?-Zeichen, als Kommandozeilenparameter interpretieren und die Kennwortdatei übertragen. Dies ist sicher nicht erwünscht. Im CGI-Modus unterdrückt PHP diese Art der Interpretation selbst und kopiert den QueryString in eine entsprechende Variable.


Pfadattacke

Das nächste Problem stellen manipulierte Pfade dar. Normalerweise kann ein Benutzer aus dem Internet nicht auf Pfade des Webservers zugreifen, die nicht explizit freigegeben wurden, entweder unter htdocs (Apache) oder wwwroot (IIS). Ist PHP im /cgi-bin-Verzeichnis erreichbar, sind Pfadangaben wie folgende erlaubt:
www.domain.de/cgi-bin/php/docs/standard.doc
Der an den Aufruf des Programms PHP angehängte Pfad, hier /docs/standard.doc, wird als Zugriff auf ein Dokument interpretiert. Das Dokument wird geholt und an den Browser gesendet. Normalerweise ist der Webserver in der Lage, die Zugriffsrechte zu überprüfen. Im gezeigten Fall werden Sie vielleicht das Dokument nur einer geschlossenen Benutzergruppe zugänglich machen wollen. Dann richten Sie ein virtuelles Verzeichnis ein und schließen den anonymen Webnutzer, nobody, im Apache und IUSR_
Machine im IIS, davon aus. So erfolgt der Aufruf:
www.domain.de/docs/standard.doc
Beim Aufruf prüft der Webserver die Rechte und verlangt Name und Kennwort, oder er lehnt die Übertragung sofort ab. Wird aber der physische Pfad, sollte dieser bekannt sein, verwendet, prüft der Webserver nur die Sicherheit der Pfadangabe vor »php«:
www.domain.de/cgi-bin/php/docs/standard.doc
Normalerweise wird der Interpreter aber allen zugänglich sein, das Dokument wird übertragen. Mit dem Schlüsselwort doc_dir und user_dir kann PHP Voreinstellungen der Stammpfade einrichten. Damit kann das Verhalten unterdrückt werden, nur die hier angegebenen Pfade werden überhaupt akzeptiert. Die Einstellungen werden im entsprechenden Abschnitt der PHP.INI vorgenommen.


PHP außerhalb der Webserver-Umgebung

Die sicherste Methode ist die Platzierung der ausführbaren Dateien außerhalb der Webserver-Umgebung, beispielsweise in /USR/LOCAL/BIN (Unix) oder im Installationsverzeichnis C:\PHP (Windows). Sie können mithilfe der Apache-Konfigurationsdatei HTTPD.CONF die Verknüpfungen an diesem Ort herstellen oder im IIS die entsprechenden Verknüpfungen vornehmen.
In der Unix-Umgebung müssen Sie allerdings jede Datei mit dem Shell-Kommando #! beginnen und den Pfad zu PHP angeben. Perl-Programmierer kennen dieses Verfahren:
#!/usr/local/bin/php
Darüber hinaus müssen die Dateien Ausführrechte haben, nicht nur Skriptrechte.


 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt