Folders/bestanden
Voor mijn kerkgemeente ben ik een sync. script aan maken zodat het leden bestand kan worden uitgelezen en weg geschreven naar een database.
Nu moet je voor fopen (die function gebruik ik) de rechten van de folder en file aanpassen naar ieder geval mod 775.
maar stel je weet de naam van het bestand en de folder dan zou je via de brouwser het volgende kunnen doen. www.adresvansite.nl/map/bestand.txt en je kunt alles lezen in het bestand.
Dat mag natuurlijk niet, want dit is gevoelige informatie.
Hoe kun je het dan wel openzetten voor PHP maar niet voor de buitenwereld?
Bedankt alvast voor je uitleg!
Gewijzigd op 02/07/2010 00:51:53 door Mark PHP
Maar als je nog geen database heb, lijkt het mij overbodig. zoniet, zet het dan in een DB, en als het echt moet kun je het laten aanroepen door php. Ik neem aan dat je weet hoe dat moet, zoniet kijk dan even naar mysql_real_escape_string, en deze tut. succes!
Of je gebruikt Ekklesia, een handig software-pakket. Heeft nu dacht ik ook een on-line-functie
@Johan Dam, handige tip! Zal eens kijken!
De .htaccess oplossing vind ik minder geslaagd, zorg er gewoon voor dat gebruikers niet weten waar die bestanden staan door ze buiten de webroot te plaatsen. Krijg je ook geen vervelende foutmeldingen als gebruikers die bepaalde map wel proberen te openen...
Het heeft even stil gelegen ivm de vakantie, maar ben er nu weer mee bezig gegaan. Ik heb een map aangemaakt buiten mijn www map, maar toch kan ik hem niet benaderen ondanks de rechten en owner op de ftp user.
Gewijzigd op 30/07/2010 13:24:20 door John D
Waar bevind het bestand zich en waar het script?
als je het bestand naast je public_html hebt en het script erin, dan moet je het aanroepen in php met ../bestand.txt, zit het script in een andere map die weer in public_html bevind, dan is het ../../bestand.txt,
bevind de bestand zich in een map naast de public html, dan is het ../../map/bestand.txt.
666=rw-rw-rw
Gewijzigd op 30/07/2010 14:31:31 door John D
John D op 30/07/2010 13:23:49:
Het is wel belangrijk dat de apache deamon (het webserver proces dat in feite php uitvoert) ook rechten heeft op die map. Meestal user: apache. Je kan het in ieder geval uittesten door even alle rechten rw-rw-rw op die map te geven.
Dat de gebruiker apache is wil je liever niet bij shared hosting. Dat zou betekenen dat iedereen jou bestanden kan uitlezen (want iedereen zou apache zijn). IMHO zou de apache onder dezelfde user draaien als waarmee ingelogd wordt op ftp. Want dan is een chmod als:
John D op 30/07/2010 14:29:45:
777=rwxrwxrwx (x=uitvoerbaar wil je liever niet).
666=rw-rw-rw
666=rw-rw-rw
Helemaal niet nodig. Dan kan gewoon 600 gebruikt worden (lees en schrijven voor owner), de group zou hoogstens nog lezen mogen, dus 640, maar dat lijkt mij ook niet echt nodig dan.
In principe zou other niet je bestanden hoeven uit te lezen, of te schrijven, of execute. Dus kan die gewoon 0 blijven per definitie.
Zal sterk afhankelijk zijn van de hoster. Als ik bij een van de hosters bestanden ftp naar de website met de ftp user dan ben ik een andere user dan apache en of dat de centrale apache is of een virtuele apache cq "mijn" apache weetikniet maar ik moet in ieder geval rw-rw---- op de bestanden zetten.
Gewijzigd op 30/07/2010 14:54:57 door John D
John D op 30/07/2010 14:52:21:
Helemaal niet nodig is een nogal algemeen oordeel, het is niet overal hetzelfde. De ene hoster is de andere niet en elke hoster vind dat zijn manier de juiste is...
Zal sterk afhankelijk zijn van de hoster. Als ik bij een van de hosters bestanden ftp naar de website met de ftp user dan ben ik een andere user dan apache en of dat de centrale apache is of een virtuele apache cq "mijn" apache weetikniet maar ik moet in ieder geval rw-rw---- op de bestanden zetten.
Zal sterk afhankelijk zijn van de hoster. Als ik bij een van de hosters bestanden ftp naar de website met de ftp user dan ben ik een andere user dan apache en of dat de centrale apache is of een virtuele apache cq "mijn" apache weetikniet maar ik moet in ieder geval rw-rw---- op de bestanden zetten.
Je leest het nu waarschijnlijk als een nieuwe zin (want ik heb ook een hoofdletter geplaatst). Het is eigenlijk als doorlopen de zin bedoelt.
Dat is dus een beetje jammer dat iedere hoster het anders doet. Ik heb bijvoorbeeld wel eens een hosting gehackt, waar weliswaar apache onder de juiste gebruiker draaide (voor iedere website een aparte user), maar dat iedereen wel in dezelfde group zat (kan ik me op zich ook wel wat bij voorstellen) en alle bestanden dus met lees en schrijf rechten voor user en group (zoals bij jouw). Doordat de jail niet goed ingesteld stond kon ik gewoon bij iedereen z'n bestanden uitlezen. Dat is toch niet de bedoeling??