PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP in VHost beschränken.



jimmy0815
23.12.07, 16:09
Hallo,

gibt es eine Möglichkeit, in bestimmten aber nicht allen apache-vhosts php funktionen zu beschränken? Also zum beispiel, dass die funktion exec(), passthru() etc nur in einem vhost zur verfügung stehen?

grüße
dennis

marce
23.12.07, 16:14
Ja. Über eine .htaccess oder in der Apache-Konfig kannst Du php-Systemvariablen setzen.

php_value include_path ".:/www/www.deinedomain.de/include/: ..."
z.B.

Es gehen aber nicht alle Direktiven, welche -> Doku.

jimmy0815
23.12.07, 16:19
cool. Danke

grüße
dennis

$kuLL
23.12.07, 16:23
Nein, die Direktive disable_functions kann nur global in der php.ini gesetzt werden, aber nicht pro VHost. Ob man das durch Zuweisen seperater php.ini für jeden vHost umgehen kann, weiß ich jetzt aber nicht genau.

marce
23.12.07, 16:37
was wo geht findet sich unter

http://www.php.net/manual/de/ini.php

jimmy0815
23.12.07, 16:37
ähm...was denn jetzt?

grüße
dennis

ahh...ok danke marce..

marce
23.12.07, 16:42
ähm...was denn jetzt?
kommt wie gesagt darauf an, was Du abändern willst - manche Dinge lassen sich über die Apache-Konfig abändern, manche nicht, manche nur in der Apache-Konfig selbst, manche auch über .htaccess...

Das konkrete Beispiel von system() erlauben oder verbieten (also disable.functions) z.B. geht nur über die php.ini.

jimmy0815
23.12.07, 16:46
Das konkrete Beispiel von system() erlauben oder verbieten (also disable.functions) z.B. geht nur über die php.ini.

das heisst also nur für alle vhosts?

damn.
trotzdem danke

Jigsore
23.12.07, 17:19
Du kannst PHP über (Fast)CGI laufen lassen. Hier ist es möglich, für jeden vHost eine eigene php.ini zu erstellen.

jimmy0815
23.12.07, 17:22
Gibt es da eine genaue Beschreibung wie man das machen kann?

grüße
dennis

Jigsore
23.12.07, 17:26
http://www.debianhowto.de/doku.php/de:howtos:sarge:apache2_php-fcgi

jimmy0815
23.12.07, 17:35
Vielen Dank..

schönen Abend noch und happy weihnachten...


grüße
dennis

zyrusthc
23.12.07, 21:34
Das geht mit disable_functions auch über einen vhost...

php_admin_value disable_functions "shell_exec, exec, ..."

Greeez Oli

$kuLL
23.12.07, 22:54
Dann sollte die PHP Doku mal aktualisiert werden:

You can also disable individual functions. Note that the disable_functions directive can not be used outside of the php.ini file which means that you cannot disable functions on a per-virtualhost or per-directory basis in your httpd.conf file.
Quelle (http://de2.php.net/features.safe-mode)

Flex6
24.12.07, 11:19
disable_functions geht nur global für alle hosts oder server über php.ini, man kann keine disable_functions in der httpd konfigurieren und sind in der httpd.conf gesetzt wirkungslos, wichtige ist auch die benutzten Anwendungen wie Foren oder was läuft auch patchen...alleine diese gesetzten php-variablen sind keine Sicherheit zum zurücklehnen

vor allen versuchen open_basedir zu vermeiden

allow_fopen_url auf off setzen in php.ini
register_globals off
save_mode on
disable_functions= wenn sgeht eine ganze latte
normalerweise sollte jeder vhost auch ein eigenes /tmp besitzen und das verlinkt wegen sessionklau etc...also wenn du das richtig machen willst viel Spaß über die Feiertage


schöne Weihnachten

fuffy
24.12.07, 13:11
Hi!


vor allen versuchen open_basedir zu vermeiden
Wieso? Eher wirst du mit PHP 6 auf den SafeMode verzichten müssen, der ohnehin in Verbindung mit mod_php unbrauchbar ist und mit PHP-CGI dank SuExec unnötig.

Gruß
fuffy

Flex6
24.12.07, 17:01
register_globals gibts in der 6er nicht mehr

fuffy
24.12.07, 17:28
register_globals gibts in der 6er nicht mehr
Ich versteh jetzt den Zusammenhang mit open_basedir nicht.

Gruß
fuffy