Ik zit met een klein dilemma op m'n Linux server waar Apache 2.0.48 en PHP 4.3.4 op draaien. Ik heb voor PHP de safe_mode op 'off' staan, want ik wil dat m'n users gewoon gebruik kunnen maken van exec(), system(), etc. voor projecten als phpSysInfo. Nu stuit ik op het volgende probleem:
PHP wordt door Apache uitgevoerd, met dezelfde rechten (apache/apache). PHP krijgt hierdoor de mogelijkheid om in de directories van andere users te kijken, en bestanden te lezen (want Apache moet dit natuurlijk ook kunnen). Stel, een user heeft de volgende dir:
/home/sites/userblaat
Dan kan hij met een dergelijk commando de dir van een andere user bekijken en de bestanden die daarin staan lezen:
En dit is natuurlijk niet de bedoeling, want zo kunnen er wachtwoorden voor MySQL e.d. achterhaald worden
Hoe kan ik ervoor zorgen dat dit beveiligd wordt, zónder safe_mode op 'on' te zetten?
Dit staat niet in P&W omdat het niets met scripting te maken heeft, het gaat me puur om apache, php en de rechten die ze hebben.
PHP wordt door Apache uitgevoerd, met dezelfde rechten (apache/apache). PHP krijgt hierdoor de mogelijkheid om in de directories van andere users te kijken, en bestanden te lezen (want Apache moet dit natuurlijk ook kunnen). Stel, een user heeft de volgende dir:
/home/sites/userblaat
Dan kan hij met een dergelijk commando de dir van een andere user bekijken en de bestanden die daarin staan lezen:
PHP:
1
| echo exec("ls -al /home/sites/andere_user"); |
En dit is natuurlijk niet de bedoeling, want zo kunnen er wachtwoorden voor MySQL e.d. achterhaald worden
Hoe kan ik ervoor zorgen dat dit beveiligd wordt, zónder safe_mode op 'on' te zetten?
Dit staat niet in P&W omdat het niets met scripting te maken heeft, het gaat me puur om apache, php en de rechten die ze hebben.