[PHP] rechten directory

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • nota
  • Registratie: Augustus 2001
  • Laatst online: 12-08 08:52
Ik ben bezig met een file upload script en nu vroeg ik me af of het wel veilig is om de directory waar het script m.b.v. move_upload_file de bestanden naar upload te chmodden naar 777. Als ik 'm op 755 of 775 laat staan werkt de upload namelijk niet en krijg ik een warning: "permission denied". Met 777 werkt het wel, maar ik vraag me dus af of dat wel veilig is...

If you think sex is a pain in the ass, try different position


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Ik zou niet weten waarom niet. Ja, er kan rommel geupload worden. Maar ik neem aan dat je een specifiek doel voor ogen hebt, en niet alleen een dump wilt maken a la rapidshare ofzo. Wanneer je een selecte groep gebruikers hebt, is je risico natuurlijk al minder. Goed loggen wie wat upload, dan kan je misbruik zo achterhalen.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
MueR schreef op maandag 06 november 2006 @ 23:23:
dan kan je misbruik zo achterhalen.
Hoewel je advies vast goedbedoeld is, is "achterhalen" natuurlijk achter de feiten aan rennen en kun je gaan puinruimen als het te laat is; dus: je kunt beter zorgen dat het helemaal niet geupped kan worden ;)

@TS: moet je geen 666 hebben ofzo? (Heb er eig'k nooit veel van begrepen, maar na even in de Wiki gedoken te zijn maakt het nog sense ook :+ )
Zoals ik het lees moet je, na het uploaden, Read/Write hebben en geen Execute; Of dat nu voor de owner, de groep of world is lijkt me zo :?

/disclaimer: Ik doe zelden iets met php/linux/chmod etc. dus ik kan er waaaay naast zitten :P

[ Voor 40% gewijzigd door RobIII op 07-11-2006 00:01 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

RobIII schreef op maandag 06 november 2006 @ 23:55:
Hoewel je advies vast goedbedoeld is, is "achterhalen" natuurlijk achter de feiten aan rennen en kun je gaan puinruimen als het te laat is; dus: je kunt beter zorgen dat het helemaal niet geupped kan worden ;)
True, je loopt er achter aan.. dit is dan ook geen oplossing voor een public upload, eerder voor iets waar zeg 5 man mee werken.

Als ik me niet vergis kan je de owner van de directory ook hetzelfde instellen als waar je webserver mee draait.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

Verwijderd

Tja... dit vraag ik me dus ook al tijden af... goed topic! Ben erg benieuwd of er iemand een korte beschrijving wil geven van de begrippen, user, group, everyone en de rechten voor read/write/execute, waarbij vooral de laatste bij mij wat vragen oproept. Eigenlijk zoek ik dus, wat is er mogelijk voor wie in welke situatie!

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 17:05

orf

Een map die rechten 777 heeft staat open voor iedereen. Dat lees je altijd en daarom lijkt het heel onveilig. De map staat echter alleen open voor iedereen die toegang heeft tot het filesystem. Een buitenstaander kan dus niet iets met die map.

Er zijn maar weinig webhosters die dit goed voor elkaar hebben op shared hosting servers. Als je het als hoster goed doet, draait PHP als dezelfde user als FTP.

Acties:
  • 0 Henk 'm!

  • storeman
  • Registratie: April 2004
  • Laatst online: 12:59
Volgens mij zit het zo,

de drie cijfers geven aan om welke user het gaat

code:
1
2
3
          6                    6                      6
          |                    |                      |
        Owner                Group                 World


Er zijn drie getallen die ieder voor een bepaalde toegang staan

code:
1
2
3
1 Execute
2 Write
3 Read


Door deze op te tellen voor iedere gebruiker kun je ieder bepaalde rechten geven.
Nu is php volgens mij gewoon een owner, dus al je een bestand via php wilt uitlezen volstaat:
300

Echter is het bestand dan niet te downloaden door buitenstaanders. Als je wilt uploaden zal 500 waarschijnlijk volstaan.

Execute heb je in principe niet nodig, er zijn weinig bestanden die je via een webserver uitvoert, dus een 1, 4 of 7 zal je volgens mij nooit gebruiken.

* Dit heb ik ooit eens opgepakt, en zo heb ik het begrepen, echt zeker weten doe ik het niet

"Chaos kan niet uit de hand lopen"


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Als het niet werkt met 775 maar wel met 777 heb je waarschijnlijk het veel voorkomende probleem dat je PHP onder een aparte user draait. Door 777 te geven wordt er geen echte rechtencheck meer gedaan waardoor gewoon alles- en iedereen toegang krijgt. Of dat wenselijk is moet je jezelf afvragen, denk aan shared hosting e.d. Dat is een beveiligingskeuze die je echt zelf moet maken.

Wat je wel kan doen als oplossing is zorgen dat je webserver processen onder de juiste user draait, net zoals bijvoorbeeld je FTP processen. Dit vereist wel wat instellingen op de server, dus is het geheel erg afhankelijk van de toegang die je hebt tot de server.

Acties:
  • 0 Henk 'm!

  • Theuno
  • Registratie: Juni 2001
  • Laatst online: 15:40

Theuno

Da Devil Crew

[b][message=26800081,noline]Er zijn maar weinig webhosters die dit goed voor elkaar hebben op shared hosting servers. Als je het als hoster goed doet, draait PHP als dezelfde user als FTP.
Dezelfde group is al goed genoeg, en zo kan je het heel ver en goed onderverdelen allemaal. Users kunnen lid zijn van meerdere groepen etc.

Punt blijft gewoon dat je er mee uit moet kijken, en niet zomaar alles op 777 gooien omdat het dan zeker wel werkt. Vroeg of laat loop je daarmee tegen de lamp/boom etc.

Theuno - Da Devil Crew - Een programmeur is iemand die koffie omzet in software...
Nu nog betere koffie...


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
storeman schreef op dinsdag 07 november 2006 @ 10:55:
Volgens mij zit het zo,
<heel verhaal>
Zoals ik eerder postte: http://en.wikipedia.org/w...ermissions#Octal_notation :Y)

[ Voor 13% gewijzigd door RobIII op 07-11-2006 12:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • nota
  • Registratie: Augustus 2001
  • Laatst online: 12-08 08:52
Ik heb bij de hoster aangegeven om safe-mode uit te zetten. Is gehoor aan gegeven, dus nu werk ik niet meer in safe mode. Toch werkt het nog niet als ik de directory rechten op 755 zet. Ik krijg nog steeds de melding: "failed to open stream: Permission denied " bij mijn move_uploaded_file commando. De UID en GID van de directory zijn de webserver en niet de apache server, ik denk dat hier wel een probleem zit. Heb ik nu, dus met safe mode uit, wel meer mogelijkheden?

If you think sex is a pain in the ass, try different position


Acties:
  • 0 Henk 'm!

  • --MeAngry--
  • Registratie: September 2002
  • Laatst online: 19-09 16:35

--MeAngry--

aka Qonstrukt

nota schreef op woensdag 08 november 2006 @ 16:02:
Ik heb bij de hoster aangegeven om safe-mode uit te zetten. Is gehoor aan gegeven, dus nu werk ik niet meer in safe mode. Toch werkt het nog niet als ik de directory rechten op 755 zet. Ik krijg nog steeds de melding: "failed to open stream: Permission denied " bij mijn move_uploaded_file commando. De UID en GID van de directory zijn de webserver en niet de apache server, ik denk dat hier wel een probleem zit. Heb ik nu, dus met safe mode uit, wel meer mogelijkheden?
Niet persé. Als je al kon schrijven, en mappen kon maken met safe_mode aan zul je op dat vlak geen veranderingen merken.

Ik ben het eens met wat eerder werd gezegd. Heel veel Shared Hosting providers hebben de zaken wat dit betreft echt bagger slecht geregeld. Ik blijf er maar tegenaan lopen met klanten die hun site weer bij zo'n host geplaatst willen hebben...

Tesla Model Y RWD (2024)


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
nota schreef op woensdag 08 november 2006 @ 16:02:
Ik heb bij de hoster aangegeven om safe-mode uit te zetten. Is gehoor aan gegeven, dus nu werk ik niet meer in safe mode. Toch werkt het nog niet als ik de directory rechten op 755 zet. Ik krijg nog steeds de melding: "failed to open stream: Permission denied " bij mijn move_uploaded_file commando. De UID en GID van de directory zijn de webserver en niet de apache server, ik denk dat hier wel een probleem zit. Heb ik nu, dus met safe mode uit, wel meer mogelijkheden?
Webserver is Apache server toch?
Wat je kan doen is de owner van de directory veranderen van jou naar web. Maar effectief veranderd dat eigenlijk niks.

Wat is het probleem met 777 precies?

Acties:
  • 0 Henk 'm!

  • Hagar
  • Registratie: Februari 2001
  • Laatst online: 20-03 20:39

Hagar

Diabootic

mode 777 is alleen onveilig als andere gebruikers toegang hebben tot die machine.
Voor de webgebruiker maakt het geen verschil.

*Tenzij* de upload directory ook via apache bereikbaar is.
Neem bijvoorbeeld een php scriptje dat door een gebruiker is geupload, je hele server/config ligt dan open.

Nu ook zonder stropdas


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Hagar schreef op woensdag 08 november 2006 @ 17:36:
mode 777 is alleen onveilig als andere gebruikers toegang hebben tot die machine.
Maar in dat geval ben je er niet met simpelweg een andere mode. Dan moet je PHP voor elk domein onder een eigen username draaien.

Acties:
  • 0 Henk 'm!

Verwijderd

Moet het niet 0766 zijn? (of 0764 als world alleen read rechten moet hebben). 5 staat voor read en execute, terwijl je read en write nodig hebt.
  • read = 4
  • write = 2
  • execute =1

[ Voor 15% gewijzigd door Verwijderd op 08-11-2006 18:48 ]


Acties:
  • 0 Henk 'm!

  • Hagar
  • Registratie: Februari 2001
  • Laatst online: 20-03 20:39

Hagar

Diabootic

Van de wiki gepost hierboven
# The execute permission, which grants the ability to execute a file. This permission must be set in order for any file—even an executable binary—to be executed or "run" on a system. When set for a directory, this permission grants the ability to traverse its tree.
Zonder execute rechten op een directory kan je er dus niet in :)

Nu ook zonder stropdas

Pagina: 1