schrijfbeveiliging
http://www.thesitewizard.com/apache/password-protect-directory.shtml staat het volgende stukje tekst en dat gaat over het instellen van de schrijfrechten voor een .htpaswd bestand:
it means that the .htpasswd can be read and written by everyone who has an account on the same server as you. The first "rw" means that the owner of the file (you) can read it and write to it. The next "rw" means everyone in the same group as you can read and write the file. The third "rw" means that everyone with an account on that machine can read and write the file.
You don't want anyone else to be able to write to the file except you, since they can then add themselves as a user with a password of their own choosing or other nefarious stuff.
Ik stel dus nooit schrijfrechten in voor mijn bestanden. Zou ik dat wel moeten doen dan?
Moet je als je (.php) bestanden aanmaakt eigenlijk voor ieder bestand de schrijfrechten instellen? Ik doe dat nooit, maar in deze tutorial it means that the .htpasswd can be read and written by everyone who has an account on the same server as you. The first "rw" means that the owner of the file (you) can read it and write to it. The next "rw" means everyone in the same group as you can read and write the file. The third "rw" means that everyone with an account on that machine can read and write the file.
You don't want anyone else to be able to write to the file except you, since they can then add themselves as a user with a password of their own choosing or other nefarious stuff.
Ik stel dus nooit schrijfrechten in voor mijn bestanden. Zou ik dat wel moeten doen dan?
Edit: Ze hebben het over de htpasswd-file. Die staat sowieso nooit in de webroot, maar op een veiliger plaats.
Gewijzigd op 16/06/2011 11:13:20 door - SanThe -
Toevoeging op 16/06/2011 15:33:50:
mijn index.php rechten staan nu op 0644. Is dat oké?
Ozzie PHP op 16/06/2011 15:29:33:
mijn index.php rechten staan nu op 0644. Is dat oké?
Ja.
Oh oke... maar dat heb ik dus niet zelf gedaan. Dat heeft ie dan blijkbaar automatisch gedaan?
Ozzie PHP op 16/06/2011 17:32:48:
Oh oke... maar dat heb ik dus niet zelf gedaan. Dat heeft ie dan blijkbaar automatisch gedaan?
Dat is standaard voor 'gewone' files. Logfiles en passwordfiles van het systeem zelf worden standaard op 0600 gezet. Oftewel alleen lees/schrijfbaar voor de owner en niemand anders.
- Nu mijn index.php op 0644 staat, betkent dat dan dat ik 'm via een php script kan aanpassen en opnieuw wegschrijven? (dit wil ik namelijk gaan doen)
- Stel dat ik mijn index.php bestand zou kopiëren naar een andere server, heeft het dan nog dezelfde schrijfrechten (worden die gewoon mee-gekopieerd)?
Ozzie PHP op 16/06/2011 17:41:23:
Hmmm... mijn htaccess bestand staat ook op 0644... en niet op 0600.
Dat is okee.
Ozzie PHP op 16/06/2011 17:41:23:
- Nu mijn index.php op 0644 staat, betekent dat dan dat ik 'm via een php script kan aanpassen en opnieuw wegschrijven? (dit wil ik namelijk gaan doen)
Als php/apache de owner is kan dat.
Ozzie PHP op 16/06/2011 17:41:23:
- Stel dat ik mijn index.php bestand zou kopiëren naar een andere server, heeft het dan nog dezelfde schrijfrechten (worden die gewoon mee-gekopieerd)?
Dat is helemaal afhankelijk van die andere server.
Hoe kan ik zien of php/apache owner is?
In de listing neem ik aan.
en waar vind ik die? :-s
Oké, dank je Aar. Als ik het goed heb gedaan dan komt de naam (ik ga er vanuit dat dat de owner is) overeen met de gebruikersnaam die ik gebruik om in te loggen voor FTP en cpanel. Ik neem aan dat dan dus niet php/apache de owner is?
Ozzie PHP op 16/06/2011 19:39:50:
... dan komt de naam (ik ga er vanuit dat dat de owner is) overeen met de gebruikersnaam die ik gebruik om in te loggen voor FTP en cpanel. Ik neem aan dat dan dus niet php/apache de owner is?
En runt Apache/PHP dan ook onder jouw naam? Zoniet dan zou dat betekenen dat je het niet kan editen.
Edit: Maar dat kan je toch simpel even uitproberen.
Gewijzigd op 16/06/2011 20:02:44 door - SanThe -
Hoe kan ik dat dan simpel even uitproberen?
mja, da's voor mij niet "even". K zal het hopelijk later deze week proberen.
Code (php)
In de broncode van de pagina staat netjes de inhoud van het script maar ik mag het niet openen om in te schrijven. Bestand owner ben ik zelf en Apache draait onder user www en heeft dus geen schrijfrechten:
Warning: fopen(test.php) [function.fopen]: failed to open stream: Permission denied in /htdocs/test/test.php on line 20
Warning: fwrite(): supplied argument is not a valid stream resource in /htdocs/test/test.php on line 21
Warning: fclose(): supplied argument is not a valid stream resource in /htdocs/test/test.php on line 22
Gewijzigd op 16/06/2011 20:26:25 door - SanThe -
Ik heb een nieuw bestand test.php aangemaakt en bij mij werkt het wel! En als ik op regel 12 de filename verander dan maakt ie een nieuw bestand aan.
Hoe kan het dat het bij mij wel werkt dan? Het wordt uiteindelijk onderdeel van een framework. Moet ik er dan rekening mee houden dat het op sommige servers wel werkt en op sommige servers niet?
Is het trouwens zo dat als ik de schrijfrechten van mijn index.php zo instel dat iedereen mag schrijven.... dat iedereen dan ook KAN schrijven? Je kunt toch nooit via de browser een bestand schrijven? Alleen iemand die toegang heeft tot de server kan dat toch?
Als ik de rechten (als root van de server) verander in 0666 dan werkt het script gewoon. Maar vanuit het script kan ik geen chmod() doen omdat Apache daar geen rechten voor heeft.
Maar ik heb niks veranderd en het werkt gewoon, zonder chmod(of iets dergelijks). Is dat dan toeval?