Zugriffsbeschränkung für PHP-Scripts
Axel B.
- php
Hi,
ich habe in einem kleinen Netzwerk einen Webserver (Apache) auf Basis von Windows(98). Ich würde dem Server gern noch PHP verpassen, habe aber das Problem, dass dann mit dem PHP-Script jeder auf alle Ordner, auch auf die anderer Server-User Zugriff hat.
Weiß jemand, wie man diesen Zugriff einschränken kann, z.B. dass jeder Script nur in dem Ordner in dem er liegt zugriffsberechtigt ist, oder etwas in der Art?
Danke, Axel
Holladiewaldfee,
Weiß jemand, wie man diesen Zugriff einschränken kann, z.B. dass jeder Script nur in dem Ordner in dem er liegt zugriffsberechtigt ist, oder etwas in der Art?
Mit open_basedir in der php.ini kannst Du zumindest mal das Wurzel-Verzeichnis definieren, in dem PHP-Skripte Zugriffsrechte haben sollen.
Ciao,
Harry
Hi,
Nabend,
Weiß jemand, wie man diesen Zugriff einschränken kann, z.B. dass jeder Script nur in dem Ordner in dem er liegt zugriffsberechtigt ist, oder etwas in der Art?
Jubb!
Erstmal ist es wichtig dass PHP als Modul in Apache geladen wird, also in der httpd.conf:
LoadModule php4_module "d:/php/sapi/php4apache.dll"
AddType application/x-httpd-php .php .phtml .php3
und nicht als CGI Script dingens ;)
Und dann kannst für jedes Verzeichnis PHP beliebig limitieren. Ich poste hier mal ein komplettes Beispiel eines Users auf meinem Testserver. Du suchst speziell open_basedir, aber die anderen Einstellungen sind auch sehr nützlich.
Im übrigen solltest nicht den Apache2 verwenden, der macht mit open_basedir Probleme.
<Directory "E:/SERVER/USER/web100">
php_admin_flag safe_mode 1
php_admin_value error_log "E:\SERVER\USER\web100\log\phperror.log"
php_admin_value include_path "E:\SERVER\USER\web100\phpinc;E:\SERVER\USER\PHP\inc"
php_admin_value safe_mode_include_dir "E:\SERVER\USER\web100\phpinc;E:\SERVER\USER\PHP\inc"
php_admin_value error_reporting 2039
php_admin_value open_basedir "E:\SERVER\USER\web100;E:\SERVER\USER\php"
php_admin_value disable_functions "exec;system;passthru;popen;pclose;shell_exec;proc_close;proc_get_status;proc_nice;proc_open;proc_terminate"
php_admin_flag register_globals 1
php_admin_value auto_prepend_file "E:\SERVER\USER\php\php_prepend.php"
php_admin_value auto_append_file "E:\SERVER\USER\php\php_append.php"
php_admin_value session.save_path "E:\SERVER\USER\web100\phptmp"
php_admin_value upload_tmp_dir "E:\SERVER\USER\web100\phptmp"
php_admin_value sendmail_from "web100@*domain*"
php_admin_value mysql.default_host "localhost"
php_admin_value mysql.default_password "*****"
php_admin_value mysql.default_user "web100"
</Directory>
Danke, Axel
cu RFZ