WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 24.04.2003, 11:19   #1
Lotussteve
Inventar
 
Registriert seit: 23.09.2000
Beiträge: 2.321


Frage Apache , public_html und PHP

Hallo!

Ich stell das mal hier rein weil es auf unserem Debianserver läuft .

Um das bösartige Nutzen von Skripten zu verhindern, aber dennoch http://URL/~USER - Webspace anzubieten versuche ich gerade, dort liegende PHP-Sachen auf eben jenes Verzeichnis zu beschränken.

Ein:

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
php_admin_value open_basedir /home/*/public_html/
......

verhindert leider JEDE Art von PHP, ein

php_admin_value open_basedir .

wie IMHO hier suggeriert wird:

http://php3.de/manual/de/configuration.php

Zitat:" Der Wert . gibt an, dass das Verzeichnis, in dem das Skript abgespeichert ist, als Basis-Verzeichnis genutzt wird."

lässt aber alles weiterhin geschehen, also auch eine /home/user/public_html/index.php die mittels system()-Call Sachen aus dem System ausliest, mit den Rechten des Apache.....

Wo genau mach ich hier den Fehler, wo steh ich auf der Leitung,warum sperrt dieser Admin_value die Skripte nicht dort ein, lässt sie aber ausführen wenn sie lokal sind.
Momentan wird bei Variante 1 ja sogar ein "echo test" verhindert......


Besten Dank im voraus für Tips oder ggfs. ein Verschieben in das entsprechende Forum (Internet,Programmieren,Software??)


Ciao,

Steve
____________________________________
--
www.cargal.org
GnuPG-key-ID: 0x051422A0
\"Be the change you want to see in the world\"-Mahatma Gandhi
Jabber-ID:lotussteve@cargal.org
Lotussteve ist offline   Mit Zitat antworten
Alt 24.04.2003, 11:53   #2
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard Re: Apache , public_html und PHP

Zitat:
Original geschrieben von Lotussteve
Um das bösartige Nutzen von Skripten zu verhindern, aber dennoch http://URL/~USER - Webspace anzubieten versuche ich gerade, dort liegende PHP-Sachen auf eben jenes Verzeichnis zu beschränken.
Die einzige wirklich 100% sichere Methode ist, den Safe Mode zu aktivieren. In einen solchen Fall überprüft PHP ob die entsprechende Datei überhaupt dem User des ausführenden Scripts gehört.

Um den Safe Mode zu verwenden muss das System allerdings relativ sauber (User Rechte) konfiguriert sein, sonst kommt es zu diversen Nebeneffekten wie z.B. Upload Problem (Ja, Upload funktioniert auch bei Safe Mode).
Philipp ist offline   Mit Zitat antworten
Alt 24.04.2003, 12:00   #3
Lotussteve
Inventar
 
Registriert seit: 23.09.2000
Beiträge: 2.321


Idee Re: Re: Apache , public_html und PHP

Zitat:
Original geschrieben von Philipp
Die einzige wirklich 100% sichere Methode ist, den Safe Mode zu aktivieren.
Hallo!

Safe Mode kommt leider aufgrund von z.B. http://gallery.sf.net nicht in Frage .

Es würde mir wirklich reichen wenn die Leute in ihren public_html PHP-Sachen machen können die auf dieses Verzeichnis beschränkt sind.
Diesen Zweck würde open_basedir erfüllen, leider hab ich da scheints ein Syntaxproblem.....die von uns allen stark frequentierte Suchmaschine spuckt leider auch nichts hilfreiches aus.

Das gemeine ist ja, daß die Anleitung im PHP-Manual genau meinen Fall lösen sollte:

open_basedir string

Beschränkt die Dateien, die von PHP geöffnet werden können, auf Dateien im angegebenen Verzeichnisbaum.

Wenn ein Skript versucht, eine Datei mit z.B. fopen oder gzopen zu öffnen, wird der Ort der Datei überprüft. Wenn sich die Datei außerhalb des spezifizierten Verzeichnisses befindet, wird PHP sie nicht öffnen. Alle symbolischen Links sind hier mit eingeschlossen, so dass es auch nicht möglich ist, dieses Verbot mittels symlink zu umgehen.

Der Wert . gibt an, dass das Verzeichnis, in dem das Skript abgespeichert ist, als Basis-Verzeichnis genutzt wird.

Unter Windows werden Verzeichnisse mit Semikolon getrennt, unter allen anderen Betriebssystemen mit einem Doppelpunkt. Wenn PHP als Modul in den Apache einkompiliert wurde, werden open_basedir paths von "Eltern"-Verzeichnissen nun automatisch vererbt.

Anmerkung: Die Unterstützung für multiple Verzeichnisse wurde in Version 3.0.7 hinzugefügt.

Die Standardeinstellung ist, alle Dateien zum Parsen freizugeben.

Und in einem Kommentar steht:

In response to MartinPierre,
open_basedir doesn't require Safe Mode to be on. Have you tried using it instead of Safe Mode?

As Daniel has shown above, open_basedir can be set by VirtualHost, Location, or Directory and only affects the scripts within those areas.

Und genau das mache ich, ich setze es im <DIRECTORY> der public_html. Nur der richtige String muss es jetzt noch sein


Ciao,

Steve
____________________________________
--
www.cargal.org
GnuPG-key-ID: 0x051422A0
\"Be the change you want to see in the world\"-Mahatma Gandhi
Jabber-ID:lotussteve@cargal.org
Lotussteve ist offline   Mit Zitat antworten
Alt 24.04.2003, 12:40   #4
Sloter
Inventar
 
Registriert seit: 05.01.2000
Beiträge: 3.812


Standard

ein chmod 745 $user ist auch nicht schlecht.

Sloter
Sloter ist offline   Mit Zitat antworten
Alt 24.04.2003, 13:05   #5
Lotussteve
Inventar
 
Registriert seit: 23.09.2000
Beiträge: 2.321


Frage

Zitat:
Original geschrieben von Sloter
ein chmod 745 $user ist auch nicht schlecht.
Hallo!

Ein --verbose wäre bitte nicht schlecht, was meinst du damit genau?

Was ändert das an der Situation daß er nur ein .php schreiben muss und das dann mit seinem Browser öffnet?



Ciao,

Steve
____________________________________
--
www.cargal.org
GnuPG-key-ID: 0x051422A0
\"Be the change you want to see in the world\"-Mahatma Gandhi
Jabber-ID:lotussteve@cargal.org
Lotussteve ist offline   Mit Zitat antworten
Alt 24.04.2003, 14:02   #6
Sloter
Inventar
 
Registriert seit: 05.01.2000
Beiträge: 3.812


Standard

Per Browser öffnen schon, aber PHP kann nicht in ein anderes $user reingucken/schreiben/.
Den VirtualHost mußt du natürlich einen user/group mitgeben.

Mach PHP sicher, ich nütze dann Perl ;-)

Sloter
Sloter ist offline   Mit Zitat antworten
Alt 24.04.2003, 23:25   #7
Lotussteve
Inventar
 
Registriert seit: 23.09.2000
Beiträge: 2.321


Idee

Zitat:
Original geschrieben von Sloter
Per Browser öffnen schon, aber PHP kann nicht in ein anderes $user reingucken/schreiben/.
Den VirtualHost mußt du natürlich einen user/group mitgeben.

Mach PHP sicher, ich nütze dann Perl ;-)
Hallo!

Hat sich im Jabber aufgeklärt daß ich die mod_userdir und keine Vhosts meine, wir werden das einfach restriktiver lösen



Ciao,

Steve
____________________________________
--
www.cargal.org
GnuPG-key-ID: 0x051422A0
\"Be the change you want to see in the world\"-Mahatma Gandhi
Jabber-ID:lotussteve@cargal.org
Lotussteve ist offline   Mit Zitat antworten
Alt 30.04.2003, 12:30   #8
Lotussteve
Inventar
 
Registriert seit: 23.09.2000
Beiträge: 2.321


Frage

Hallo!

Da das Thema in der Forumsübersicht nicht zu sehen ist (?!) poste ich mal rein daß ich nicht viel weiter gekommen bin:

Das mod_userdir werde ich wieder ausbauen, ich schaffe es aber auch via <VirtualHost> nicht, das PHP zu unterbinden......Sloter dein 745 $USER samt User $USER in der Vhost bringt auch nix, er zeigt immer noch alles an.....

Was ist an dem Eintrag (ausser daß er mal sehr nackt ist und nur zu Testzwecken) falsch:

Code:
<VirtualHost XXX.XXX.XXX.XXX>
    ServerName NAME/members/USER
    ServerAlias NAME/members/USER
    DocumentRoot /var/www/members/USER
    User USER
    php_admin_value safe_mode= On
    php_admin_value open_basedir /var/www/members/USER 
</VirtualHost>
Bitte um Hilfe,danke!


Ciao,

Steve
____________________________________
--
www.cargal.org
GnuPG-key-ID: 0x051422A0
\"Be the change you want to see in the world\"-Mahatma Gandhi
Jabber-ID:lotussteve@cargal.org
Lotussteve ist offline   Mit Zitat antworten
Alt 30.04.2003, 12:47   #9
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Huch, ein nackter Eintrag!

Die fehlenden Anführungszeichen?
Code:
#limit the files which php scripts can open
php_admin_value open_basedir "/var/www/members/USER"
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 30.04.2003, 12:59   #10
Lotussteve
Inventar
 
Registriert seit: 23.09.2000
Beiträge: 2.321


Ausrufezeichen

Zitat:
Original geschrieben von _m3
1.) Huch, ein nackter Eintrag!

2.) Die fehlenden Anführungszeichen?
Hallo!

ad 1.) Isch abe Phhhotoos

ad 2.) Nein, kein Unterschied.

Langsam zipft mich das nämlich ziemlich an, ich will einfach nur daß die User ihre PHP-Sachen nur in ihrem Verzeichnis und darunter machen können, das kann doch nicht so schwer sein.

Zitat aus einer Mail von debian-user-german:

> > Safe_mode macht nur sinn in Kombination mit open_basedir. open_basedir
> > oder safe_mode alleine bringt nichts.
>
> Ich hab es jetzt versucht mal nur für den Directoryeintrag zu setzen,
> das scheint aber nicht zu gehen:
>
> php_admin_value open_basedir .
Ich schrieb es bereits: gib in einem <Virtual Host> die vollständige
Pfadangabe an und deaktiviere mod_homedir (public_html).

> > Ich würde open_basedir explezit angeben (vollständige Pfadangabe ohne
> > Wildcards), homedirs deaktivieren und alles über sauber konfigurierte
> > virtual_hosts umsetzen.
>
> Wo würdest du das open_basedir setzen, in der /etc/php4/apache/php.ini ?
In der php.ini kannst Du nur ein openbasedir setzen. In der Apache
Konfigurationsdatei jedoch für jeden <Virtual Host> oder jedes
Directory.

> Mit welchem Wert?
Mit dem absolutem Pfad ins vom Nutzer erreichbare Root Verzeichnis
innerhalb des <Virtual Hosts>

> Zumindest eine App ( http://gallery.sf.net ) geht mit
> safe_mode nicht, soll ich da für das einen vhost machen und dort
> safe_mode= Off setzen? Geht das, siehe oben, überhaupt, auf
> vhosts-Basis?
Du kannst den Safe_mode generell auf On setzen und <Virtual Host>
bezogen deaktivieren. Allerdings solltest Du sicherstellen, dass auch
lediglich DU der einzige bist, der Zugriff (also schreibenden nicht über
den Browser ,-) auf diesen Bereich hat!

Und JA - das geht. Habe ich Dir doch von Anfang an empfohlen ...

Zitat Ende. Bis jetzt kann ich seine sehr nette Rechthaberei am Ende nicht bestätigen, es geht bei mir nicht......was mache ich falsch?


@Sloter: du meintest 705,sehe ich das richtig (ist zumindest bei www77 so), das hilft nix!



Ciao,

Steve
____________________________________
--
www.cargal.org
GnuPG-key-ID: 0x051422A0
\"Be the change you want to see in the world\"-Mahatma Gandhi
Jabber-ID:lotussteve@cargal.org
Lotussteve ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:48 Uhr.


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