WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Problem mit mysqldump-Nachbau in PHP (http://www.wcm.at/forum/showthread.php?t=73113)

Philipp 12.10.2002 13:09

Zitat:

Ja Meister, aber die dunkle Macht des Fileuploads ist sehr stark
File Uploads funktionieren auch im Safe Mode :)

Man legt einfach ein /tmp Verzeichnis (777) dort an wo das Script ausgeführt wird. Bei einigen PHP Applikation lässt sich sogar der Name des Safe Mode Upload Verzeichnisses einstellen.

Zitat:

1, Läßt sich mit Dateirechte recht gut Unterbinden, ist zwar mit etwas handarbeit verbunden aber es geht.
Leider Nein. PHP hat als Apache Modul ohne Safe Mode sämtliche Rechte die auch Apache hat, da helfen keine Dateirechte. Es können durch PHP alle Dateien die Apache offnen kann auch geöffnet werden. Das betrifft auch Systeminterne Dateien.

Ein harmloses Beispiel:
Probiere einmal http://phpsysinfo.sourceforge.net aus. Nettes Script, lief sogar am WCM Server für kurze Zeit. Zeigt Uptime, CPU, Speicher usw. an.

Diese Daten werden aber nicht durch PHP übergeben sondern durch öffnen von Systemdateien:
/proc/sys/kernel/hostname
/proc/version
/proc/uptime
/proc/loadavg
/proc/cpuinfo
/proc/pci
usw.

/proc ist nicht das einzige Verzeichnis das sich öffnen lässt. Ich würde daher so bald als möglich Safe Mode einschalten. Theoretisch (wenn alle Rechte richtig vergeben sind) sollten keine Probleme auftauchen.

Sloter 12.10.2002 17:27

Wenn ein Script sauber programmiert ist, geht auch der Fileupload mit "off",aber es gibt viele Scripten die sind nicht so sauber programmiert.

Nur Safemode auf off ist aber auch zu wenig.
Wirklich sicher wird es nur durch vernünftige Datei- und Userrechten, SuEXEC, safe_mode und open_basedir. ;-)

chmod 751 webx verhindert auch schon das auslesen weiterer Accounts und unterbindet das wandern im Dateisystem.
zB: /www/web1
/www/web2
usw...

Sloter

käptn 12.10.2002 18:35

nur nicht...
 
http://iworks.at/temp/demon.gif :hehe:

~

Philipp 13.10.2002 00:47

Zitat:

Wenn ein Script sauber programmiert ist, geht auch der Fileupload mit "off",aber es gibt viele Scripten die sind nicht so sauber programmiert.
Das mit dem extra /tmp Verzeichnis hat bisher immer funktioniert. Außerdem ist es nicht wirklich sinnvoll schlecht programmierte Scripte auf virtuellen Accounts zu betreiben, vor allem wenn sie irgendwelche Dinge uploaden können ;)

Zitat:

Nur Safemode auf off ist aber auch zu wenig.
Wirklich sicher wird es nur durch vernünftige Datei- und Userrechten, SuEXEC, safe_mode und open_basedir. ;-)
Zu wenig? Safe Mode ist die effektivste Einstellung um PHP abzusichern. Bei eingeschalten Safe Mode können nur die Dateien geöffnet werden die auch dem jeweiligen User gehören.

1) vernünftige Datei- und Userrechten

Bringen wenig. Wenn PHP als Teil von Apache läuft, hat es automatisch fast alle Rechte die Apache hat (=fast root).

2) SuEXEC

Funktioniert nur im CGI Modus.

3) open_basedir

Nach Safe Mode eine weitere brauchbare Einstellung, allerdings nicht wirklich Flexibel.

Zitat:

chmod 751 webx verhindert auch schon das auslesen weiterer Accounts und unterbindet das wandern im Dateisystem.
Funktioniert teilweise. Es müssen sämtliche Dateien im Verzeichnis auf 751 umgestellt werden um nicht ausgelesen zu werden. Daher ist es keine wirkliche Alternative.

Sloter 13.10.2002 08:06

<sinnvoll schlecht programmierte Scripte auf virtuellen Accounts zu <betreiben, vor allem wenn sie irgendwelche Dinge uploaden können
Wie willst du ein paar Hundert Accounts überwachen?
Soll ich mir jedes Script zuschicken lassen?

Ausserdem läuft jeder Virtuelle Accont unter einem eigenen User/Group.
Kann man ja schön in der httpd.conf bestimmen.

<2) SuEXEC
<Funktioniert nur im CGI Modus.
PHP als CGI installieren ? ;)


<Funktioniert teilweise. Es müssen sämtliche Dateien im Verzeichnis <auf 751 umgestellt werden um nicht ausgelesen zu werden. Daher ist <es keine wirkliche Alternative.
Beim letzten Sicherheitscheck den die CT anonym bei Hoster gemacht hat, hat es sich schon als sinnvoll herausgestellt.......

@Käptn
:hehe:

Sloter

Philipp 13.10.2002 11:13

Im Attachment ein Screenshot von meinen gestrigen Versuchen. Oben ohne Safe Mode, unten mit Safe Mode.

Mit einer einzigen Einstellung (in diesem Fall Safe Mode) wird PHP wesentlich sicherer und erlaubt kein öffnen von fremden Dateien.

Sloter 13.10.2002 12:03

Ja ich weiß schon und die CT hat sogar ein schönes Script zum testen verteilt.
Spiel dich ein wenig mit den Dateirechten, dann kannst auch das öffnen diverser Datein verhindern.

Sloter

Philipp 13.10.2002 13:57

Ich wollte dir mit diesem Screenshot nur zeigen das man mit einer einzigen Einstellung den Server absichern kann :)

Zitat:

Spiel dich ein wenig mit den Dateirechten, dann kannst auch das öffnen diverser Datein verhindern.
Das habe ich schon schon gemacht. Der Aufwand ist viel zu hoch da die Rechte bei hunderten Dateien geändert werden müssen. Außerdem bringt es keine 100% Sicherheit für Accounts auf dem Server.

Beispiel:
Jemand installiert phpBB2 auf seinen Account und macht chmod 777 config.php wie es empfohlen wird. Die Datei kann damit automatisch von allen Accounts am Server gelesen werden, wobei es egal ist dass das Verzeichnis auf chmod 751 umgestellt wurde.

Sloter 13.10.2002 14:06

Mit 777 kan es die ganze Welt über Browser lesen und beschreiben......
Die 751 verhindern nur das interne Auslesen der datei, und das sehr gut.

Sloter

Philipp 13.10.2002 15:16

Zitat:

Mit 777 kan es die ganze Welt über Browser lesen und beschreiben......
Beschreiben mit dem Browser :confused:

Eine Konfigurationsdatei wie z.B. config.php kann man selbst bei 777 nicht über den Browser lesen da Username/Passwort in Variabeln gespeichert wird

z.B:
PHP-Code:

<?php

$username 
"User";
$password "Passwort";

?>

Am Browser sieht man dann nur eine weiße Seite :)

Ich habe in der Zwischenzeit den c't Artikel angesehen. Der Workaround mit chmod 751 ist eigentlich nur für Notfälle:

Zitat:

Selbstschutz

Offensichtlich sind viele Provider nicht willens oder in der Lage, ihren Kunden eine sichere Server-Umgebung zu bieten. Anwender müssen jedoch darauf vertrauen, dass ihr Provider seinen Server sicher konfiguriert. Ein wenig kann sich jeder Webspace-Besitzer zusätzlich schützen, indem er in seinen Verzeichnissen die Schreib- und Leserechte restriktiv einstellt. Viele ftp-Programme unterstützen das Setzen von Dateiattributen. Dabei sollte man auf Linux-Systemen alle Verzeichnisse auf dem Webserver gegen das Lesen durch fremde Nutzer schützen. Der entsprechende Parameter für den chmod-Befehl lautet 751. Wer großen Wert auf den Schutz seiner Web-Präsenz legt, die bisher in einer Shared-Hosting-Umgebung untergebracht ist, sollte damit auf einen dedizierten Server umziehen.
So ganz dürfte der Autor dieses Artikels aber auch nicht bei der Sache gewesen sein:
Zitat:

Laut der PHP-FAQ [1] kann aber auch der Safe Mode nicht wirklich als sicher gelten. Sie empfehlt für Shared-Hosting-Umgebungen sogar, PHP als CGI-Applikation einzusetzen.
Da es mich dann doch interessiert hat warum der Safe Mode angeblich nicht sicher ist habe ich im PHP-FAQ nachgesehen:

Zitat:

safe_mode ist nicht sicher: Ein Fehler in der popen() -Funktion ist erst mit 3.0.14 korrigiert worden, ein weiterer Fehler in der > mail() -Funktion erst in 3.0.15. Man sollte stattdessen die CGI-Version in einem >chroot -Environment verwenden und mit setrlimit noch weitergehende Einschränkungen definieren.
PHP 3.0.14/3.0.15 sind schon etwas älter ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag