Is er een manier om door gebruikers geüploade pagina's veilig op PHP uit te voeren?

Ik wil bestanden (php-sites/applicaties) uploaden naar de opgegeven directory en ze daar uitvoeren, binnen mijn webserver. Een eenvoudige shell_exec-aanroep kan echter al serieuze gevolgen hebben.

Alle dingen die ik kan bedenken zijn het instellen van de map pages buiten de public_html en het automatisch instellen van de rechten, zodat de gebruiker die die pagina uitvoert geen rechten heeft.

Andere middelmatige oplossing die ik tot nu toe heb gevonden is runkit_sandbox , die er redelijk onveilig uitziet, speciaal omdat het lijkt te worden verlaten.

Is er echt geen manier? Zelfs niet met volledige shell-toegang (shellscripts)?

1
Dit is een vrij slecht idee als je de uploaders niet vertrouwt.
toegevoegd de auteur ceejayoz, de bron
Ik begrijp het niet zo goed, waarom moet u uw gebruikers toestaan ​​scripts op uw servers uit te voeren? Of wil je alleen dat ze hun php-applicaties kunnen inzetten?
toegevoegd de auteur Sacx, de bron

3 antwoord

Nee. Er is een vrijwel onbeperkt aantal schadelijke gedragingen die door de gebruiker geüploade code kan bevatten, waarvan er vele sterk lijken op legitiem gedrag (bijvoorbeeld het verzenden van e-mail versus het verzenden van spam; toegang tot externe API's versus het plegen van een DDoS; line utility versus exploit runnen, bestanden beheren versus alles verwijderen). Er is meestal geen "ingeblikte" manier om dit te doen, en zeker geen binnen PHP.

2
toegevoegd
1
toegevoegd

Gebruik open_basedir om uw gebruikers te beperken tot een bepaalde map. Op deze manier kan het zijn bestanden met zijn eigendom uitvoeren, maar het zal niet meer dan zijn map kunnen zien.

Kijk hier voor meer informatie:

http://www.randombugs.com/php/apache -dynamische-virtual-hosting-php-security.html

http://www.php.net/manual/en /ini.core.php#ini.open-basedir

0
toegevoegd