Portál AbcLinuxu, 12. května 2025 11:52
<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.