Mailinglisten-Archive |
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