Synology-Forum.nl

Overige software => Web Station => Topic gestart door: brimnes op 23 augustus 2020, 11:59:35

Titel: [Opgelost] Virutal hosts hebben toegang tot elkaars bestanden
Bericht door: brimnes op 23 augustus 2020, 11:59:35
Hi,

Mijn virtual hosts hebben toegang tot elkaars bestanden, en dat zou ik willen voorkomen.

Ik heb Webstation geïnstalleerd en er een paar virtual hosts op aangemaakt: https://site1.nl en https://site2.nl

Nu kan ik op site1.nl het volgende bestand plaatsen:
echo file_get_contents('/volume1/web/site2.nl/bestand.txt');

Het is dus voor site1 mogelijk om bestanden te lezen van site2 en vice versa.

Hoe voorkom ik dit? Ik weet dat je iets kunt met open_basedir, maar ik wil niet een eigen PHP configuratie maken voor iedere virtual host!

Alvast bedankt :)

--- EDIT MET OPLOSSING HIERONDER ---
Er blijkt een bug in DSM's Web Station te zitten waardoor er standaard geen open_basedir gezet wordt.

Standaard config in synology
[attachimg=1]

phpinfo(); met standaard config
[attachimg=2]

Als je een custom open_basedir instelt, dan wordt de root van je site ook automatisch meegenomen (wat eigenlijk al standaard had moeten gebeuren). De open_basedir instelling is nu dynamisch per site, zonder dat je losse configs hoeft te maken. Hierdoor kunnen de verschillende sites niet bij elkaars bestanden.

custom open_basedir enabled
[attachimg=3]

phpinfo(); met custom open_basedir enabled
[attachimg=4]
Titel: Re: Virutal hosts hebben toegang tot elkaars bestanden
Bericht door: Wyodor op 23 augustus 2020, 15:09:53
Virtual hosts hebben daar niets mee te maken.
file_get_contents in PHP maak je zelf.
Wil je dat niet, moet je het niet maken.
Titel: Re: Virutal hosts hebben toegang tot elkaars bestanden
Bericht door: brimnes op 23 augustus 2020, 15:15:19
Losse websites horen niet bij elkaars data te kunnen.

Als er één site is met een lek, dan wil je niet dat gelijk je hele server naar de knoppen wordt geholpen.

Normaal laat je PHP onder z'n eigen user draaien, waardoor het filesystem het niet toe staat om andere bestanden te lezen, of je gebruikt open_baseurl. Alleen is het wel een rot klus om per site een eigen PHP configuratie te maken, om alleen de open_baseurl per site goed te zetten.
Titel: Re: Virutal hosts hebben toegang tot elkaars bestanden
Bericht door: Wyodor op 23 augustus 2020, 15:21:29
Apache kan alleen in zijn eigen map (root) kijken. Niet buiten de map.

Als je met PHP code die je zelf hebt getiept data ergens anders vandaan haalt, weet Apache van niets.
Titel: Re: Virutal hosts hebben toegang tot elkaars bestanden
Bericht door: brimnes op 23 augustus 2020, 15:25:47
Ik heb het niet specifiek over Apache. Webstation noemt losse websites "virtual hosts". Maar in zo'n virtual host kan je wel configuratie meegeven voor PHP.

Dan wel door het onder een eigen user te draaien (de netste oplossing, maar kost veel ram), of te configureren in welke mappen PHP mag kijken.
Titel: Re: Virutal hosts hebben toegang tot elkaars bestanden
Bericht door: Wyodor op 23 augustus 2020, 15:36:13
Een virtual host werkt ook zonder PHP.
Titel: Re: [Opgelost] Virutal hosts hebben toegang tot elkaars bestanden
Bericht door: brimnes op 25 augustus 2020, 18:52:49
Ik heb bij toeval de oplossing gevonden en het in de 1e post verwerkt.

@Wyodor, Bedankt voor het meedenken, of zo...