open_basedir is een beveiliging in PHP om er voor te zorgen dat je geen bestandssystem bewerkingen en lezingen kan doen buiten de map waar je eigen website of applicatie in staat. Ik heb een tijdje gezocht naar de juiste manier om dat te implementeren. open_basedir wil ik op Athena gebruiken, omdat ik daar meerdere eigen websites op ga draaien. Ik heb nu gevonden hoe:
- Voeg binnen een <virtualhost> het volgende toe:
1
2
3<directory directorynaam>
php_admin_value open_basedir "directorynaam:/tmp"
</directory>De dubbelepunt dient als splitsing tussen directory’s. /tmp moet ook als toegestane directory toegevoegd worden omdat daar de sessies en upload’s naar weggeschreven worden.
- Een voorbeeld:
1
2
3<directory directorynaam>
php_admin_value open_basedir "/var/www/sites/athena.maikelg.net:/tmp"
</directory>Let op! open_basedir legt geen beperking op aan het gebruik van de shell functies, zoals shell_exec(), exec() en system().




juli 21st, 2007 at 16:26
Is het ook mogelijk om dit te gebruiken in een .htaccess bestand, in geval je geen toegang hebt tot de server config?
juli 21st, 2007 at 17:42
Nee, dat kan niet. En dat is maar goed ook
Als je dat in een .htaccess zou kunnen doen zou je dus de open_basedir die door je provider is ingesteld kunnen omzeilen en dan is de hele beveiliging weg
Maar je site is gehost op nl03.pcextreme.nl zie ik, en pcextreme heeft de open_basedir en nog veel betere beveiligingen echt wel goed ingesteld