1] Exec () gerçekten yararlı olduğunda:
A) için bir komut eşdeğeri yok php sunucu üzerinde bir program / yardımcı programını çalıştırmak istiyorum. Örneğin ffmpeg (medya dönüşüm için her türlü) bir exec çağrısı ile çalıştırmak yaygın aracıdır.
Eğer üzerinde engellemek engellemek veya DEĞİL olabilir - - çok güçlü B) başka bir süreci yayınlanıyor. Bazen olmayan engelleme için doğru CL args ile birlikte olsa bir pcnt_fork Qant, veya benzer.
XSLT 2.0 işlemek zorunda C) Başka bir örnek - I) (dönüşümleri işlemek için çalışıyor olması küçük bir java hizmeti exec var. Çok kullanışlı. PHP XSLT 2.0 dönüşümleri desteklemiyor.
2] Damn that's a shame.
Well, lots of ways. Theres a family of vulnerability called, "remote file include vulns", that basically allow an attacker to include arbitrary source and thus execute it on your server.
Take a look at: http://lwn.net/Articles/203904/
Ayrıca, yukarıda belirtildiği gibi, sizin (Çok basitleştirilmiş) gibi bir şey yapıyor ki:
exec("someUnixUtility -f $_GET['arg1']");
?:, Kod temelde aşağı kaynar, Eh, saldırgan, url.come arg1 = "rm-rf / filan" gelmez hayal
exec("someUnixUtility -f blah; rm -rf /");
Unix Hangi, w / komutları ayrı; Yani evet - bu çok fazla hasar olabilir.
Same with a file upload, imagine you strip the last four chars (.ext), to find the extension.
Well, what about something like this "exploit.php.gif", then you strip the extension, so you have exploit.php and you move it into your /users/imgs/ folder. Well, all the attacker has to do now is browse to users/imgs/exploit.php and they can run any code they want. You've been owned at that point.