Gå til innhold

[Løst]Hindre inkludering fra andre områder [Webserver]


nree

Anbefalte innlegg

Løst!

 

På serveren min har jeg forskjellige virtuelle hoster som ligger i httpd.

 

Serveren kjører forøvrig Debian GNU/Linux 4.0

 

Når jeg oppretter brukere legger jeg de til som vanlige brukere uten shell tilgang og de får sitt eget hjemmeområde men det er der jeg trenger hjelp.

 

bruker1 har sitt hjemmeområde på /home/bruker1

bruker2 har sitt hjemmeområde på /home/bruker2

 

I httpd.conf er det satt opp slik for hver bruker:

 

<VirtualHost *>

ServerAdmin [email protected]

DocumentRoot /home/bruker1/

ServerName foo.bar

</VirtualHost>

 

Når bruker1 vil ha et script til bruker2 lager han et PHP script der han skriver:

<?php show_source("/home/bruker2/hemmelig.php"); ?>

 

Hvordan kan jeg forhindre at dette skjer? At en bruker kan "få tilgang til" andre sine områder med f.eks php, men at andre samtidig skal kunne få tilgang til hjemmeområdet til hver bruker gjennom virtualhost i httpd.

 

Håper noen har en god løsning :)

Endret av Goggen90
Lenke til kommentar
Videoannonse
Annonse

Hmm. det går helt sikkert ann å kjøre hvert virtual domain/host som en annen bruker enn apache.

 

Da setter du bare de rettighetene som skal være. Read, Write Execute for sitt hjemmeområde. og only read for andre brukere sitt hjemmeområde.

 

litt usikker på om det vil fungere men du kan jo forske litt på det.

 

Tror det er noe som heter SuExec som du kan bruke i httpd.conf

Lenke til kommentar

Takk for svar :)

 

Det er en løsning jeg vet en av hosting selskapene jeg har bruker hos har men syns ikke det virker som noe god løsning, jeg vil ha mer kontroll over det uten å måtte opprette en egen bruker for hver eneste.

 

Hadde håpet det gikk an å løse på konfigurasjonsnivå, f.eks ved hjelp av httpd.

Altså -> Sette opp noe sånt som: den mappen kan ikke inkludere eller få tilgang til noen andre en seg selv, hvis dere skjønner.

Lenke til kommentar

jo skjønner hva du mener. og er enig i at det er litt tungvindt.

 

 

Prøvde å forske litt på det. Kom ikke fram til noe spennende.

 

There are two ways of configuring apache to support multiple hosts. Either by running a separate httpd daemon for each hostname, or by running a single daemon which supports all the virtual hosts.

 

Use multiple daemons when:

 

* There are security partitioning issues, such as company1 does not want anyone at company2 to be able to read their data except via the web. In this case you would need two daemons, each running with different User, Group, Listen, and ServerRoot settings.

* You can afford the memory and file descriptor requirements of listening to every IP alias on the machine. It's only possible to Listen to the "wildcard" address, or to specific addresses. So if you have a need to listen to a specific address for whatever reason, then you will need to listen to all specific addresses. (Although one httpd could listen to N-1 of the addresses, and another could listen to the remaining address.)

 

Use a single daemon when:

 

* Sharing of the httpd configuration between virtual hosts is acceptable.

* The machine services a large number of requests, and so the performance loss in running separate daemons may be significant.

 

Good luck. Og post her om du finner en elegant måte å gjøre det på. Kan hende jeg eller noen andre på forumet får bruk for det vettu :)

Lenke til kommentar
Har ikke funnet noen løsninger enda så da blir det en liten bump ;)

 

Mener på at det skal være en instilling som bestemmer at php scriptet ikke får gå høyere opp i hierkiet enn sin egen home folder, husker ikke helt hva den heter men lurer på om det var noe open_basedir eller noe slikt?

Lenke til kommentar
Har ikke funnet noen løsninger enda så da blir det en liten bump ;)

 

Mener på at det skal være en instilling som bestemmer at php scriptet ikke får gå høyere opp i hierkiet enn sin egen home folder, husker ikke helt hva den heter men lurer på om det var noe open_basedir eller noe slikt?

 

 

bør vel kunne gå til ../htdocs i alle fall.. sånn at man kan legge konfigfiler utenom web-området.

Lenke til kommentar

Ser ut som open_basedir kan gjøre susen, men det jeg ikke får til med det er å ha en open_basedir pr. virtualhost.

 

Har prøvd å sette "php_value open_basedir /home/mappe" i virtualhosts i httpd men det ser ikke ut til å fungere :ermm:

Lenke til kommentar
Ser ut som open_basedir kan gjøre susen, men det jeg ikke får til med det er å ha en open_basedir pr. virtualhost.

 

Har prøvd å sette "php_value open_basedir /home/mappe" i virtualhosts i httpd men det ser ikke ut til å fungere :ermm:

 

Har aldri prøvd å bruke det selv, har bare fått feilmeldinger tidligere når jeg hadde web10, da brukte de tydeligvis open_basedir, aner ikke hvordan det skal settes opp

Lenke til kommentar

Ser slik ut ja..

 

Så et sted der det stod man kunne skrive "open_basedir ~" i php konfigurasjonen, har selv ikke prøvd dette da dette vil føre til mindre frihet.

 

Det var også et problem som oppstod under bruk av open_basedir, php filene fikk ikke tilgang til tmp mappen.

 

Løsningen min ble å sette php sin temp mappe til /home/tmp (ikke nødvendig egentlig) for så å sette:

php_admin_value open_basedir "/home/mappe:/home/tmp"

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...