Limit script toegang PHP map

Pagina: 1
Acties:
  • 183 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 01-08 19:01
Hey mede-tweakers,

Ik heb een Apache webserver thuis draaien, en wil daar ook meerdere gebruikers op gaan toevoegen. Alleen heeft elke map ook toegang tot de map daarboven, dus dat zou betekenen dat elke gebruiker tot en met de root alle bestanden en maken zou kunnen uitlezen en zelfs aanpassen met een simpel scriptje.
Dat is natuurlijk niet iets waar ik warm van loop..

Ik heb al best wel lang gezocht op google om te kijken of ik via Apache misschien iets met htaccess of alias directories kon betekenen, maar dat leverde mij niks op. Elke keer werd gepraat over het weigeren van bezoekers naar bepaalde mappen / bestanden. Waarschijnlijk gebruik ik de verkeerde zoektermen, want ik kan mij niet voorstellen dat een commerciele webhost elke gebruiker toegang heeft tot de mappen van andere klanten.

Ik heb Windows Server 2003 icm WampServer (Apache, PHP5 + MySQL).

Ideaal word dit dus geblokkeerd:
W:\WWW\klant_map
PHP:
1
2
3
$files = glob("../"); 
foreach($files as $file)
echo $file;

etc..

Liefst wel dat ik vanaf W:\WWW toegang heb tot klant_map, maar dat is niet een must..

Heeft iemand enig idee, of suggesties in welke hoek ik moet zoeken?

[ Voor 3% gewijzigd door ChessSpider op 08-01-2008 18:06 ]


Acties:
  • 0 Henk 'm!

  • ChessSpider
  • Registratie: Mei 2006
  • Laatst online: 01-08 19:01
Okay volgens mij is het mij gelukt! Het antwoord ligt in de PHP functie open_basedir.

Wat ik heb gedaan is het volgende, ik heb de map van dat persoon uit mijn WWW map gehaald.
Dus in plaats van W:\WWW\klant_naam, is het nu W:\klant_naam.

Daarna heb ik een alias directory voor hem aangemaakt dat website.com/klant_naam ook daadwerkelijk gelinkt naar de juiste map.
Daarna moest ik de open_basedir functie specifiek voor die map aanmaken / aanpassen.
Dat doe je met de regel:
php_admin_value open_basedir locatie

Niet de globale open_basedir in php.ini! Want dan kunnen de bestanden in W:\WWW\ niet meer includen!

Het resultaat is dus:
code:
1
2
3
4
5
6
7
8
9
10
Alias /klant_naam/ "w:/klant_naam/" 

<Directory "w:/klant_naam/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all

php_admin_value open_basedir w:/klant_naam/
</Directory>


Mochten er problemen optreden zal ik deze post aanpassen..

[ Voor 5% gewijzigd door ChessSpider op 09-01-2008 18:27 ]