Portál AbcLinuxu, 29. prosince 2025 09:47
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com/www
<Directory /var/www/example.com/www>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
php_admin_value open_basedir /var/www/example.com
AllowOverride AuthConfig FileInfo Indexes Limit
</Directory>
ErrorLog /var/www/example.com/logs/www.example.com-error.log
CustomLog /var/www/example.com/logs/www.example.com-access.log combined env=!nologreq
</VirtualHost>Pre iné jazyky než PHP je to potrebné riešiť zvlášť. Okrem toho PHP defaultne povoľuje spúšťanie príkazov ako napríklad cat, či ls, a pre tie už open_basedir neplatí, takže je dobré volania všetkých externých príkazov z PHP potom úplne zakázať.
disable_functions = .
Nastavit safe_mode by asi bylo moc restriktivní, že?
disable_functions, kde je minimálne treba vymenovať všetky funkcie, ktorých popis začína slovami "Execute ...", napríklad odtiaľto: Program Execution Functions. Pozor ale - aj iné moduly a funkcie môžu obsahovať nechcené fičúry, ako napr. tento.
Všetko toto rieši ale len PHP skripty, ak tam bude napr. Perl, tak ten treba riešiť zvlášť (nemám tušenie ako, keďže perl nie je môj obľúbený). Istým riešením by bolo prevádzkovať Apache v konfigurácii per-user, kedy je ku každému virtuálnemu hostu pridelený user, pod ktorým sa požiadavky vykonávajú. To by riešilo problém komplexne, bohužiaľ väčšina týchto per-user rozšírení nie je práve v stable vetve (aspoň naposledy čo som pozeral).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.