phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?RE:_=5Bphp=5D_Grunds=E4tzliches_zu_mysql_Sicherheit_/_Trus?= =?iso-8859-1?Q?t-Center?= =?iso-8859-1?Q?t-Center?=

[php] =?iso-8859-1?Q?RE:_=5Bphp=5D_Grunds=E4tzliches_zu_mysql_Sicherheit_/_Trus?= =?iso-8859-1?Q?t-Center?= =?iso-8859-1?Q?t-Center?=

Johann-Peter Hartmann hartmann_(at)_freecharts.de
Wed, 28 Feb 2001 15:24:14 +0100


Hi Liste, hallo Christian/Burkhard ,


Christian Peer* schrieb:

> Ein Kunde möchte im Zuge eines Webauftrittes eine Datenbank
> aufbauen. Nun möchte er, daß diese sicher ist, da es teilweise
> sensible Daten sind.
>
> Was spricht gegen mySQL auf dem Webserver?
> Ist es notwendig eine Datenbank im LAN des Kunden aufzubauen
> (Firewallgeschützt), auf welche dann zugegriffen wird?


	Sowas habe ich dazu draussen gesehen/genutzt :

	a) Der MySQL ist nur von innen, nicht von
	   aussen ansprechbar - dh. er steht nur über
	   Unix-Socket, nicht auf Port 3306 zur Verfügung.
	   Auf diese Weise kann er nur über die PHP-Scripte
	   auf dem Server angesprochen werden.
	( Siehe auch "Server bietet zuviele Dienste an" bei
	  http://www.koehntopp.de/kris/artikel/websec/ )

	b) Die PHP-Scripte misstrauen allem, was von draussen
	   kommt - dh. überprüfung aller GET/POST/Cookie-Parameter,
	   auch die, die eigentlich von einem selbst kommen
	   (sollten) . Hilfe kann man z.B. von den
	   OOHForms und ShellEscape/addslashes bei system/SQL-
	   Anfragen . Besonders berücksichtigen sollte man wohl,
	   dass PHP alles moegliche Extern includen kann -
	   also z.B. auch include-Files, und damit zusaetzliche
	   Möglichkeiten bietet.

	c) Es liegt nur eine Kopie der relevanten Daten auf dem
	   Webserver.
	   Wenn firmeninterne Tabellen benutzt werden sollen,
	   benutzt man auf dem Webserver nur regelmaessig
	   aktualisierte Kopien - und arbeitet nicht auf den
	   Originaldatenbanken. Für die Datenaktualisierung
	   öffnet man ein Zeit/IP-Fenster von innen zum
	   externen Server.

	   Der Webserver sollte nicht in der demilitarisierten
	   Zone im firmeninternen Netz stehen, sondern ausserhalb -
	   aber natuerlich kann man ihn trotzdem durch einen
	   Firewall/Packetfilter schützen .
	   Ein Server im LAN würde einem erfolgreichen Hacker
	   gleich Zugriff auf das gesamte Firmennetz geben.

	d) ein IDS (Intrusion Detection System) installieren.
	   Ich installiere z.B. auf den Servern eine aktuell
	   gehaltene Version von Snort, auf die Weise behält man
	   das aktuelle "Klima" ganz gut im Auge.

	e) vertrauliche Daten nur ueber SSL . Damit
	   gewährleistet man nicht nur die eigene Sicherheit,
	   sondern auf die des Klienten :-) .

	Ich vermute mal, dass es noch eine Reihe Dinge mehr gibt,
	aber dazu koennen sich ja auch andere äussern :-) .
	Faustregeln sind vielleicht noch :
	Nur 22-ssh 80-http und 443-https als offene Ports,
	BugTraq lesen . Und vielleicht die Nmap-Ergebnisse
	des Defacement-Mirrors auf http://alldas.de .

	Viele Grüße, johann




PS: Mit welchem Recht resettest Du eigentlich immer meine
    IRC-Connection ? Hmmm ?



php::bar PHP Wiki   -   Listenarchive