PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<KonfigurationCGI-Version>
view the version of this page
Last updated: Sat, 19 Apr 2003

Kapitel 5. Sicherheit

PHP ist eine m�chtige Sprache, und der Interpreter, der in einen Webserver als Modul oder als separate CGI-Version eingebunden werden kann, kann auf Dateien zugreifen, Befehle ausf�hren und Netzwerkverbindungen zu einem Server herstellen. Diese Eigenschaften k�nnen einen Webserver unsicher machen, wenn man es bei den Voreinstellungen bel�sst. PHP wurde besonders daf�r entwickelt, um eine sicherere Sprache als Perl oder C f�r die Erstellung von CGI-Programmen bereitzustellen. Mit der richtigen Wahl der Einstellungen beim Kompilieren und zur Laufzeit bietet PHP genau die Kombination aus Freiheit und Sicherheit, die gerade ben�tigt wird.

Da es sehr viele verschiedene M�glichkeiten gibt, PHP zu nutzen, gibt es viele Konfigurationseinstellungen, die das Verhalten von PHP beeinflussen. Eine gro�e Auswahl an Einstellungen garantiert, dass man PHP f�r viele Zwecke einsetzen kann. Allerdings bedeutet das auch, dass es Kombinationen gibt, die eine Installation mit nur ungen�gender Sicherheit zur Folge haben.

Die Flexibilit�t der Konfiguration konkurriert mit der Flexibilit�t in der Programmierung. Mit PHP k�nnen komplette Server Applikationen mit allen M�glichkeiten eines Shell Benutzers erstellt werden, oder auch nur einfache Server Side Includes mit einem minimalen Risiko in einer streng kontrollierten Umgebung. Wie die Umgebung erstellt wird, und wie sicher diese ist, ist zu einem gro�en Teil die Sache des PHP Entwicklers.

Dieses Kapitel beginnt mit einigen generellen Ratschl�gen zur Sicherheit, erkl�rt die verschiedenen Kombinationen der Konfigurationseinstellungen und unter welchen Gegebenheiten sie sicher genutzt werden k�nnen, und beschreibt verschiedene �berlegungen zur Programmierung f�r verschiedene Sicherheitsstufen.

Allgemeine �berlegungen

Ein komplett sicheres System ist praktisch ein Ding der Unm�glichkeit, weshalb ein unter Sicherheitsprofis oft genutzter Ansatz ist, einen Mittelweg zwischen Risiko und Verwendbarkeit zu finden. Wenn jede von einem Benutzer �bermittelte Variable zwei Formen von biometrischer Pr�fung (wie z.B. ein Scan der Netzhaut und ein Fingerabdruck) verlangen w�rde, w�re eine extrem hohe Ebene der Verantwortlichkeit erreicht. Ein sehr komplexes Formular auszuf�llen w�rde auch eine halbe Stunde in Anspruch nehmen, die Benutzer dazu ermuntern k�nnte, Wege zur Umgehung der Sicherheitsma�nahmen zu suchen.

Die beste Sicherheit ist oft unaufdringlich genug um den Anforderungen zu entsprechen, ohne den Benutzer an seiner Arbeit zu hindern oder den Code-Autor mit �bertriebener Komplexit�t zu �berlasten. Tats�chlich sind einige Sicherheitsangriffe nur die Folge von allzu strengen Sicherheitsma�nahmen, was mit der Zeit nur zu deren Unterminierung f�hrt.

Eine Phrase die es wert ist, sich an sie zu erinnern: Ein System ist nur so gut wie das schw�chste Glied in der Kette. Wenn alle Transaktionen mittels Zeit, Ort, Transaktionstyp, etc. streng mitprotokolliert werden, der Benutzer aber nur mittels einem einzigen Cookie verifiziert wird, l�sst die Zuverl�ssigkeit f�r die Bindung des Benutzers an das Transaktions-Log bedrohlich nach.

Denken Sie w�hrend der Tests daran, dass Sie selbst f�r die einfachsten Seiten nicht alle M�glichkeiten testen k�nnen. Der von Ihnen vielleicht erwartete Input wird zu dem eines verstimmten Mitarbeiters oder eines Crackers der Monate Zeit hat, oder einer Katze, die �ber die Tastatur l�uft in keinerlei Zusammenhang stehen. Deshalb betrachten Sie Ihren Code am Besten aus der logischen Perspektive um zu erkennen, wo unerwartete Daten eingebracht werden k�nnen und fragen sich dann, wie diese modifiziert, reduziert, oder weiter ausgef�hrt werden.

Das Internet ist voll von Leuten die versuchen, sich durch Entschl�sseln/zerst�ren Ihres Codes, den Zusammenbruch Ihres Systems, Einsetzen von unangebrachten Inhalten, und anderen, Ihren Tag interessant gestaltenden Ma�nahmen, einen Namen zu machen. Es ist egal, ob Sie eine kleine oder gro�e Site haben, Sie sind einfach ein Ziel wenn Sie online sind oder wenn Sie einen Server haben, zu dem man eine Verbindung aufbauen kann. Viele Cracker-Programme erkennen nicht die Gr��e, sondern durchsieben einfach gewaltige IP Bl�cke im Netz, um Opfer zu finden. Versuchen Sie, keines zu werden.



User Contributed Notes
Sicherheit
add a note
25-Feb-2003 11:00
For real security you should consider providing chrooted jail's for your users.
ManifoldNick at columbus dot rr dot com
30-Apr-2003 05:30

Remember that security risks often don't involve months of prep work or backdoors or whatever else you saw on Swordfish ;) In fact one of the bigges newbie mistakes is not removing "<" from user input (especially when using message boards) so in theory a user could secerely mess up a page or even have your server run php scripts which would allow them to wreak havoc on your site.
add a note

<KonfigurationCGI-Version>
 Last updated: Sat, 19 Apr 2003
show source | credits | mirror sites 
Copyright © 2001-2003 The PHP Group
All rights reserved.
This mirror generously provided by: /
Last updated: Thu May 15 01:08:38 2003 CEST