Autor Zpráva
Kamill
Profil *
Dobrý večer, snažím se najít, jestli existuje nějaký modul do apache/php (nebo nějaká funkce), která umožní bezpečně spustit bash skript z php, aniž, by se mi nějak ohrozila bezpečnost serveru, ale nedaří se mi. Můžete mi, prosím, něco takového doporučit? Děkuji předem
Kajman_
Profil *
Vyberte si zde
http://cz.php.net/manual/en/ref.exec.php
Mike_
Profil *
Kamill
spustit bash skript z php, aniž, by se mi nějak ohrozila bezpečnost serveru,
timhle myslis co? jak by ta "funkce" mela pozna co je bezpecny?

jinak v php mas fce exec(), system(), passthru()
vyber si
AM_
Profil
Pustit návštěvníka webu do bashe není bezpečné a rozumné nikdy. Pokud ale použiješ bash pro nějaký předem zadaný příkaz, není na tom nic nebezpečného, např. jednou jsem narazil na málo zabezpečený hosting, kde měli zakázanou funkci copy(), ale na exec() zapomněli, tak jsem spouštěl exec("cp soubor1 soubor2"), ale třeba exec($_GET['prikaz']) těžko zabezepečíš tak, aby uživatel mohl spouštět jen "neškodné veci".
srigi
Profil
AM_
Ale tie prikazy sa vykonavaju pod vlastnikom daemona weboveho servera. Cize system ako taky ohrozeny nie je, ostatne hostovane domeny ale ano.
AM_
Profil
Linux není úplně moje parketa, v jeho právech se nevyznám, ale bohatě stačí, že ohrožují přinejmenším celou hostovanou doménu, ve které skript běží, pak tedy ještě navíc ty ostatní. Viděl jsem ale už i ukradené heslo roota na hostingu, který si nezapnul open_basedir, nevím, jestli by se s execem nedalo dosáhnout něčeho podobného.
Kamill
Profil *
Mike_
Ta funkce to nemá poznat, jde mi to, když tu DANOU funkci povolím, aby se mi nezvýšilo (nebo alespoň minimálně) riziko napadnutí serveru.

AM_
To nebude pro běžné uživatele, ale pro členy našeho týmu. Uvedu příklad: Ten skript obsahuje pár řádků kódu, který zjistí PID dané aplikace a poté ji killne, ale na pozadí (screen), běží restarter, kteterý tuto aplikaci znovu spustí, tudíž to bude sloužit jako takový restart z webu pro ty, co nemají vzdálený přístup na server.
Kamill
Profil *
Teď jsem náhodou narazil na php funkci, která možná dokáže proces taky killnout, viz funkce posix_kill
Jenže nejsem si tím 100% jist, a hlavně jaksi nechápu, co by měl být ten druhý argument (signal).
Majkl578
Profil
srigi
to nemusi byt vzdy pravda. treba u web4ce, kde hostuji, to je udelane tak, ze kazda domena bezi pod vlastnim userem, takze nemuzu do cizich adresaru...
Kamill
Profil *
Majkl578
O to mi ani až tak nejde, webhosting neposkytuji, více info výše :-)
Kamill
Profil *
Kamill
Tak ta funkce posix_kil je nejspíše na něco jiného :). Takže mohli byste se ještě prosím vyjádřit? Děkuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: