apt-get install apache2-mpm-itk libapache2-mod-php5
<?php
$datei = fopen("irgendwas.txt","r");
echo "$datei";
?>
<?php
$homepage = file_get_contents('/var/log/dpkg.log.1');
echo $homepage;
?>
Mod-PHP ist kein separater Prozess (nicht mal ein separater Thread) sondern ein Teil des Apache-Prozesses welcher von ITK geforkt wird. Er hat exakt die Rechte des Benutzers welcher ITK dem Prozess zuweist. Generell darf ein Unix-User auf alle Dateien zugreifen deren CHMOD-Rechte es zulassen.Soweit ich mich erinnere läuft mod_php als Prozess mit sehr hohen Rechten, deswegen braucht es ja Restriktionen wie open_basdir.
Falls du nur auf PHP und keine weitere Sprachen setzt so ist die Verwendung von open_basedir die bequemste und einfachste Lösung um einzelne Domains oder Ordner auf getrennte Pfade zu begrenzen. Beachte aber dass durch die Verwendung von open_basedir die PHP-Curl Erweiterung begrenzt ist was bspw mit Owncloud Probleme macht. Lässt sich zwar über auto_prepend_file und mit der runkit-Extension quick&dirty-patchen aber naja...Ich dachte nun kann durch Verwendung von mpm-itk außerhalb dieses vhost Verzeichnisses nichts mehr anzeigen lassen. Die log- Datei zB zeigst mir aber, genauso kann ich auch den Inhalt einer config.php Datei aus einem anderen vhost im Browser ausgeben.
<VirtualHost *:80>
ServerName blah.de
ServerAlias blah.blah.de
ServerAdmin blah@blah.de
DocumentRoot /var/www/blah/2014
<Directory /var/www/blah/2014>
Options Indexes FollowSymLinks MultiViews
Options -All +FollowSymLinks
AllowOverride AuthConfig FileInfo
Order allow,deny
allow from all
php_admin_value open_basedir /var/www/blah/2014
</Directory>
#php_admin_value open_basedir /var/www/blah/2014
ErrorLog ${APACHE_LOG_DIR}/error_blah.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel error
CustomLog ${APACHE_LOG_DIR}/access_blah.log combined
<IfModule mpm_itk_module>
AssignUserId user1 grou11
MaxClientsVHost 50
NiceValue 10
</IfModule>
</VirtualHost>
Das ist abhängig was du realisieren willst, beides ist gültig.Wo ist es richtiger aufgehoben? Innerhalb oder außerhalb <Directory>?
Die Befehle php_admin_value und php_admin_flag dürfen NUR in der Server-Konfiguration verwendet werden. Für .htaccess gibt es die Befehle php_value und php_flagIm errorlog steht nun /var/www/blah/2014/.htaccess: php_admin_value not allowed here.
Nicht alle Werte können überschrieben werden. Die PHP-Dokumentation muss spezifisch PERDIR für die jeweilige Option auflisten damit es funktioniert.Mit einer .htaccess kann man ja php_Werte überschreiben. Ich möchte das testen.
...
Nicht alle Werte können überschrieben werden. Die PHP-Dokumentation muss spezifisch PERDIR für die jeweilige Option auflisten damit es funktioniert.
Kann auch eine "vhost-php.ini" den globalen Wert auch nicht überschreiben? Also php_admin_value kann ausschließlich nur in der globalen php.ini verwendet werden und wenn dort gesetzt dann ist das auch nicht Änderbar, okay. Danke!...
Wenn du in der Server-Konfiguration mittels php_admin_value oder php_admin_flag einen Wert setzt kann der Benutzer diesen nicht überschreiben auch wenn PERDIR eigentlich für die Option zugelassen ist.
Dies erlaubt es sicherheits-/performance-relevante Einstellungen ohne böse "Hacks" zu setzen und blockieren.
Falls du nur einen vhost-spezifischen Standardwert setzen willst der überschreibbar ist musst du php_value/php_flag in der Konfiguration verwenden.
Dafür ist ein Forum schliesslich daAber ich habe auch viel gelernt! DANKE!
Genau. Allerdings ist die Liste nicht vollständig da sie nur auf php.net beschriebene Extensions umfasst - Suhosin bleibt bspw aussen vor. Bei solchen Extensions musst du dann Google oder die Herstellerseite bemühen.Ist das folgende die Liste wo in der 3. Spalte dann PERDIR stehen muss, also genaugenommen PHP_INI_PERDIR
Ich bin mir nicht sicher dass ich verstehe was du meinst. Bei mod_php verwendet man nur eine einzige globale php.ini, alle weiteren Einstellungen müssen uber php_value oder php_admin_value Befehle in den vHosts gesetzt werden. Dies stellt aber nicht unbedingt einen Performance-Nachteil dar, ist nur etwas ungewohnt verglichen mit den anderen Lösungen.Kann auch eine "vhost-php.ini" den globalen Wert auch nicht überschreiben?
Nicht eine php.ini (bitte nicht die Datei mit den Parameter verwechseln!) sondern ein php_admin_value disable_functions ....Für einige Werte benötige ich wohl eine vhost spezielle php.ini, zB für exec.
Generell ist es auch so eine gute Idee die Limitierung zu setzen. Es kostet nur wenig zusätzlichen Administrationsaufwand, der Overhead ist sehr niedrig und bei Kompromittierung einzelner Seiten über Exploits ist nicht direkt dein ganzer Server potentiell gefährdet. Eine Applikation sollte _immer_ nur genau so viele Rechte haben wie sie braucht, das beinhaltet auch Rechte für Dateisystem-Zugriffe.ich möchte aber lernen was zu tun wäre wenn zB ein Freund seine Seite auf meinem Server ablegt ohne ständig seine Software (Wordpress) auf Sicherheitslücken zu prüfen..
We use essential cookies to make this site work, and optional cookies to enhance your experience.