09. december 2002 - 08:32Der er
8 kommentarer og 1 løsning
Ekskluder PHP kørsel fra et bestemt directory + subdirectories
Hej eksperter! Jeg vil gerne vide om det er muligt at nægte kørsel af PHP filer fra et bestemt directory på ens server.
Problemet ligger i at jeg har lavet en upload/download side, hvor brugerne frit kan uploade de filer de har lyst, og samtidig også køre/downloade dem fra serveren. - Det ville dog ikke være så smart hvis brugeren uploadede et eller andet nasty PHP script der kunne komme til at skabe problemer på serveren :(
Er det noget med .htaccess jeg skal til at bruge, eller..?
Det skal lige tilføjes at jeg kører med Apache 1.3.27 på Linux
Mange tak for hjælpen. Det var hvad der skulle til :) Desværre så var jeg vist ikke specifik nok i mit spørgsmål, da jeg faktist ville have lagt .htacces filen (eller måske skal der en helt tredje løsning til dette) i upload mappen imens filerne vil ligge i et subdirectory..
Jeg prøver lige at beskrive min nuværende mappestruktur
/var/www/html/domain/index.php Her ligger selve login siden der linker så linker til:
/var/www/html/domain/filsystem/login.php denne side sørger så for at brugeren får vist filerne der ligger i dette directory:
Kan jeg ikke bare smide én .htaccess fil i /var/www/html/domain/filsystem/brugerfiler/ der så sørger for at alle subdirectories herfra ikke kan eksekvere PHP scripts?
Ville det nok være smartere at lave en regel inde i httpd.conf filen til Apache, eller kan dette slet ikke lade sig gøre?
Tror jeg forstår det sådan at filer i "/var/www/html/domain/filsystem/brugerfiler/brugernavns_filer" ikke må kunne udføres, men skal læses af "/var/www/html/domain/filsystem/login.php"?!? Så kan du vel bare smide .htaccess i "brugernavn_filer"... hvis det skal gøres i httpd.conf, vil jeg tro at det skal se ud som følger: <Directory /var/../../../brugernavns_filer> php_value engine off </Directory> Er dog ikke testet..
Grunden til at jeg ikke vil have .htaccess filen til at ligge i netop brugernavns_filer, er fordi jeg har givet ham "fuld adgang" til mappen, således at han kan uploade/downloade alle sine filer dertil/fra. Sæt nu han selv lavede sin .htaccess fil og uploadede den, altså erstattede min, så ville han stadigvæk være i stand til at eksekvere PHP scriptet fra serveren.
Det er grunden til at jeg hellere vil forsøge mig med httpd.conf filen i stedet for, hvortil jeg så har fået følgende resultat (som endda virker :))
<Directory /var/www/html/domain/filsystem/brugerfiler/brugernavns_filer> AllowOverride None #denne stopper vel .htaccess filen i at køre, ik? RemoveType .php </Directory>
Har du/i andre forslag der måske kunne gøres bedre? Måske noget i stil med
men jeg vil samtidig også kunne ekskludere nogle enkelte brugere fra mappen, således at DE må have lov til at eksekvere PHP scripts fra serveren, selvom de ligger i /var/www/html/domain/filsystem/brugerfiler/bruger_der_godt_maa_php ?
hmm, tror ikke du kan lade nogle få lov til at bruge PHP mens andre ikke kan. Løsningen på det må være at Alias D.v.s. oprette to dir til brugerfiler. Et for dem som må, og for dem som ikke må. Dit login-script bestemmer så hvilket dir der uploades til
En mulighed var vel at omdøbe filen til filnavn.php.txt Så vil man altid kun få vist indholdet? Og så kan du højreklikke og vælge "gem" så det kan downloades
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.