Forum » Informacijska varnost » Varno izvajanje PHP-ja na deljenem gostovanju
Varno izvajanje PHP-ja na deljenem gostovanju
alsu ::
Pozdravljeni,
zanima me katere so vse možne rešitve, da bi se pravilno zaščitil strežnik (shared hosting), pred zlonamernim izvajanjem kode PHP. Če naredim nek seznam korakov, ki sem jih naredil do zdaj, bi zgledal nekako takole:
1. php.ini nastavitve (allow_url_include, allow_url_fopen itd...)
2. basedir, nastavljen tako, da preprečuje poseg v ostale datoteke
3. disabled functions - exec,passthru,shell_exec,system,proc_open...
4. chmod - pravice folderjev so nastavljene na 755, fajlov pa na 644, chown je tudi opravljen.
...
Ampak poleg vsega tega, lahko z enostavno PHP kodo dostopam do zelo občutljivih datotek ostalih spletih strani:
Recimo da se nahajam: /var/www/stran1
seveda, tudi če exec dodam na seznam disabled functions, se zadeva lahko zaobide.
Poleg tega lahko s pomočjo PHP-ja izvajam nekatere shell ukaze, kot poudarek kako resna je ta zadeva.
Poskusil sem nastavit pravice user-ja v sudoers, tj. omejit na samo nekatere ukaze, ampak je vse skupaj isto. Shell vsakega uporabnika je nastavljen na /bin/false ali pa /usr/sbin/nologin. Pa itak mislim, da to nima nikakršne vloge, kajti PHP tako ali tako izvaja drug user.
izpiše mi: www-data
Torej, kaj predlagate, suphp / suexec ? - ali je poleg tega še kakšna druga rešitev?
Hvala
zanima me katere so vse možne rešitve, da bi se pravilno zaščitil strežnik (shared hosting), pred zlonamernim izvajanjem kode PHP. Če naredim nek seznam korakov, ki sem jih naredil do zdaj, bi zgledal nekako takole:
1. php.ini nastavitve (allow_url_include, allow_url_fopen itd...)
2. basedir, nastavljen tako, da preprečuje poseg v ostale datoteke
3. disabled functions - exec,passthru,shell_exec,system,proc_open...
4. chmod - pravice folderjev so nastavljene na 755, fajlov pa na 644, chown je tudi opravljen.
...
Ampak poleg vsega tega, lahko z enostavno PHP kodo dostopam do zelo občutljivih datotek ostalih spletih strani:
Recimo da se nahajam: /var/www/stran1
<?php echo exec('cat /var/www/stran2/config.php'); ?>
seveda, tudi če exec dodam na seznam disabled functions, se zadeva lahko zaobide.
Poleg tega lahko s pomočjo PHP-ja izvajam nekatere shell ukaze, kot poudarek kako resna je ta zadeva.
Poskusil sem nastavit pravice user-ja v sudoers, tj. omejit na samo nekatere ukaze, ampak je vse skupaj isto. Shell vsakega uporabnika je nastavljen na /bin/false ali pa /usr/sbin/nologin. Pa itak mislim, da to nima nikakršne vloge, kajti PHP tako ali tako izvaja drug user.
<?php echo exec('whoami'); ?>
izpiše mi: www-data
Torej, kaj predlagate, suphp / suexec ? - ali je poleg tega še kakšna druga rešitev?
Hvala
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Python3] Izvajanje ukazov po določenem časuOddelek: Programiranje | 1446 (1056) | noraguta |
» | dnsmasq problemOddelek: Omrežja in internet | 1856 (1596) | poweroff |
» | PHP davčna blagajnaOddelek: Programiranje | 8077 (6101) | brble |
» | Spletna stran in ukazi na linux serverju (bash skripta)Oddelek: Programiranje | 1329 (1083) | Mesar |
» | [UNIX] arg list too longOddelek: Programiranje | 1937 (1192) | bijonda |