PHP interpreter filehozzáférés korlátozása
2011-01-02T14:19:28+01:00
2011-01-07T09:16:32+01:00
2022-07-19T02:21:12+02:00
CsGabor
Adott egy
webroot
|
-- Username#1
|
...
|
-- Username#n
struktúrájú könyvtárszerkezet egy WinXP-t futtató PC-n. Ezeket a http szerveren át bárki mint weboldalak gyökereit elérheti http://username.domain.tld/ alakban (értelemszerűen olvasásra). (vhosts.conf gondoskodik róla) (Írásra ftp-vel van lehetősége a felhasználóknak, de az itt most nem érdekes.)
A probléma a következő: php futtatási jogot adok mindegyik felhasználónak. El szeretném érni, hogy semmilyen olyan fileműveletet ne tudjanak végrehajtani, ami az ő gyökerükből felfelé kilát. (Jelen pillanatban - lévén a httpd önálló, finomhangolt jogosultságokkal ellátott felhasználóként fut - egymáson kívül a felhasználók túl sok mindent nem láthatnak, de ez is sok.) Kérdésem: lehetséges-e az Apache és a PHP között valahogy elkommunikálni, hogy éppen kinek a szkriptje hajtódik végre, és testre szabni a filehozzáférési jogokat? Környezet: Pentium II procis 96MB RAM-mal (és 120GB HDD-vel) felszerelt gép (igen, nevetséges, viszont csak 18W-ot fogyaszt, és ugye szerver lévén éjjel-nappal megy, tehát nem mindegy), WinXP SP3 oprendszer, Apache/2.2.13 és PHP/5.2.13

Közben kicsit belemélyedtem, így beállításra került a
open_basedir = D:\WEBROOT
és a
safe_mode = On
Így a c99.php már nem látja pl. a rendszerpartíciót, de ez még mindig kevés, mert a felhasználók egymásba beleláthatnak php szkripttel.

Köszönöm előre is.

(A prog.hu-n írott suPHP kitűnő ötlet, ha linuxot használ az ember. De ez sajnos WinXP.)
Mutasd a teljes hozzászólást!
Szia!
VirtualHost -ban, mindegyiknek egyedi Open_BaseDir -t kell megadni, de nem szabad elfeljteni, hogy ekkor temp mappát is csinálnunk kell, és azt beállítani.

#valami.hu <VirtualHost *:80> ServerName valami.hu ServerAlias valami.hu www.valami.hu ServerAdmin info@valami.hu DocumentRoot "D:\WEBROOT\#valami.hu" php_admin_value open_basedir "D:\WEBROOT\#valami.hu" php_admin_value upload_tmp_dir "D:\WEBROOT\#valami.hu\#temp" php_admin_value session.save_path "D:\WEBROOT\#agroved.hu\#temp" TransferLog "D:\WEBROOT\#valami.hu\#temp\log" <Directory "D:\WEBROOT\#valami.hu"> AllowOverride All </Directory> </VirtualHost>
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd