[PHP]SAFE_MODE

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

Onderwerpen


Verwijderd

Topicstarter
Hey,

Op de hoster waar we met een site geparkeerd zitten, staat SAFE_MODE aan..
Da's mooi ben wel voor wat veiligheid.
Na is onlangs onze website verplaatst van de ene naar de andere server.
Probleem was, dat alle bestanden in een bepaalde directory nu eigendom zijn van game-it, da's de unix user met FTP acces. Feitenlijk waren ze owned van Apache.
User game-it zit NIET in de groep apache ! Hoe kan nou in godsnaam de zaak ooit goed werken, als je A Safe mode aan hebt staan, en B niet in elkaars groep zit ?

Is een FTP connectie maken IN PHP een oplossing ?

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 21-09 17:49

ripexx

bibs

De user die apache gebruikt moet iig lees rechten hebben op de files. Daarnaast is het soms handig als apache/php eventueel naar een bestand of directory kan schrijven. Afhankelijk vanje situatie zul je moeten kijken wat de handigste oplossing is. Verder is dit iets van je hoster en niet zo zeer van je eigen site, tenzij je hele ranzig constructies hebt gemaakt maar dat lijkt me niet het geval. ;)

Oja een extra FTP connectie om je bestanden te benaderen is not the way to go. :Y)

buit is binnen sukkel


Verwijderd

Topicstarter
De hoster van de site is een prutser...

Na een maand lang klagen, zijn we eindelijk overgezet.. Heb die lullo geen TAR bestand gemaakt, maar alles handmatig zitten verplaatsen.

Alles permissions noor de K***

Volgens mij, moet het mogelijk zijn, om SAFE_MODE op een virtueel domein IN een bepaalde folder uit te zetten.. toch ?

Mjah, dat moet op .ini niveau ...

[ Voor 28% gewijzigd door Verwijderd op 12-02-2004 09:48 ]


  • mph_rbi
  • Registratie: Januari 2001
  • Niet online

mph_rbi

dus ...

het is safe_mode aan of uit, niet een beetje uit :D

dus ...


Verwijderd

Topicstarter
Dus concreet:

Ik moet in de groep Apache worden onder verdeeld .
(In safe_mode heeft een groep wel acces mag ik hopen..? naja dat zoek ik wel op.)

Verwijderd

Topicstarter
mph_rbi schreef op 12 februari 2004 @ 09:53:
het is safe_mode aan of uit, niet een beetje uit :D
Not..

In php.ini kan je weldegelijk derictories ingeven, waarin safe-mode aan of uit staat.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

[...]
However, there may be environments where a strict UID check is not appropriate and a relaxed GID check is sufficient. This is supported by means of the safe_mode_gid switch. Setting it to On performs the relaxed GID checking, setting it to Off (the default) performs UID checking
[...]
Natuurlijk moet de Owner ook in de groep van de webserver zitten; veel (goede) hosters zorgen hiervoor dat zowel de FTP als de WEB server onder 1 account draaien :)


Wat ook kan:
safe_mode_include_dir string

UID/GID checks are bypassed when including files from this directory and its subdirectories (directory must also be in include_path or full path must including).

As of PHP 4.2.0, this directive can take a colon (semi-colon on Windows) separated path in a fashion similar to the include_path directive, rather than just a single directory.

The restriction specified is actually a prefix, not a directory name. This means that "safe_mode_include_dir = /dir/incl" also allows access to "/dir/include" and "/dir/incls" if they exist. When you want to restrict access to only the specified directory, end with a slash. For example: "safe_mode_include_dir = /dir/incl/"

[ Voor 61% gewijzigd door Spider.007 op 12-02-2004 19:09 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mjah, dat had ik ook al gelezen.

Ik kan nu werkelijk niets ermee, en wat ik bovendien vaag vind, is wanneer ik via PHP een directory aanmaak, mkdir() en daarna metteen nog eens chmod 777 doe..
De directory even later niet meer door PHP aangeroepen kan worden.

Dus via PHP maak ik een DIR, die niet meer te benaderen is via PHP zelf ?
Dat volg ik niet meer... Denk dat die server niet echt lekker geconfigureerd is...


Die knakkers hebben niet eens een telefoonnummer !
Volgende keer maar zelf ff een host regelen..

[ Voor 23% gewijzigd door Verwijderd op 18-02-2004 15:38 ]


Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
Oh, was het niet zo dat je met chmod in php dat je _alle_ permissie bits mee moet zetten?


dus het 4 cijferige octale nummer ...... 0777 op z'n minst... kan me zoiets vaags herinneren van iemand anders die hetzelfde had met chmod.. maar goed..

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mjah dat doe ik al...

Sterker nog voor iedere actie die ik in het script doe, doe ik een CHMOD nu.
Dan nog mag het niet baten...

//edit toch nog maar eens een verzoekje gedaan aan de host, om mijn directory buiten de safe_mode restricties te zetten, op php.ini niveau.. (zal ie apache voor moeten booten... ai.. daar gaat zijn 99,9% uptime motto)

[ Voor 46% gewijzigd door Verwijderd op 13-02-2004 11:26 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
update,

nog ff een update voor mensen die er mischien ook tegenaan lopen.
Wanneer SAFE_MODE voor een bepaalde directoy UIT gezet wordt door de hoster (in de php.ini), dan ben je pas van de ellende af, als dus OOK je code wordt uigevoerd binnen die directory.
Ik heb ook geprobeerd om het betreffende stukje code als losse file in mijn screenshots dir. te plaatsen, en deze te includen.. dat mocht niet baten natuurlijk dan wordt de code alsnog buiten die dir. geparsed.

Ik blif het een vreemde zaak vinden, ik maak met PHP een dir aan met mkdir() , waarbij ik hem "chmod"naar 777. En toch kan PHP even later geen toegang krijgen op de directory. Deze directory heeft een andere uid. en dat vind ik nog steeds onbegrijpelijk..

Ik heb inmiddels gevraagd of onze hoster ons complete domein maar buiten safe_mode gaat zetten.

Acties:
  • 0 Henk 'm!

  • sjokki
  • Registratie: Juli 2002
  • Niet online
Zolang de Perchild MPM van Apache niet stable is zijn er maar weinig alternatieven voor safe-mode. Je kan er tijdens het schrijven van scripts beter van uit gaan dat het wel aan staat.

Dat je geen bestanden kan maken in een directory die je net gemaakt hebt is normaal onder safe-mode.

Onder safe-mode wordt het UID van het script (het bestand, niet de uitvoerder) vergeleken met het UID van het bestand of de directory waarop het script een bewerking probeert uit te voeren. Deze UID's moeten gelijk zijn. Als je een directory maakt via FTP krijgt die bijvoorbeeld UID 1041. Als je via FTP ook een script uploadt krijgt dat script ook UID 1041. Nu mag dat script bestanden maken in de directroy (mits de Apache-user schrijfrechten heeft). Maar als je een directory maakt via een script krijgt die directory het UID van de Apache-user, bijvoorbeeld 9999. Omdat de UID's niet gelijk zijn mag je er dan geen bestanden in maken, dankzij safe-mode.

Dit is vervelend, maar er zijn wel een aantal oplossingen voor te bedenken:

- Zorg dat de directory het UID van de FTP-user krijgt. Dit kan je doen door de directory te maken via de FTP-functies van PHP.

- Zorg dat het script het UID van de webserver-user krijgt. Dit kan je bijvoorbeeld doen door het script te uploaden en vervolgens met een script te kopiëren. In plaats van het origineel voer je de kopie uit.

- Vergeet het hele directory-concept en gebruik in plaats van directories bijvoorbeeld prefixes voor bestandsnamen om ze te kunnen onderscheiden.

Omdat de eerste twee oplossingen onpraktisch zijn zou ik zelf voor de prefixes gaan.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank voor de uitleg,

't is wat duidelijker nu.. blijkbaar begreep ik safe_mode en de manier van eigendom checken niet helemaal goed.
Inmiddels hebben we onze host zover gekregen om het domein gewoon erbuiten te zetten voor ons.
Bijwijze van "hoge" uitzondering hebben ze dit gedaan , en gelukkig maar...

We uploaden, picture mergen.. maken directories, verwijderen bestanden.. ect..
Als ik dat allemaal had moeten veranderen was 'k wel ff bezig.

Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 03-09 22:58

igmar

ISO20022

sjokki schreef op 18 februari 2004 @ 23:05:
Zolang de Perchild MPM van Apache niet stable is zijn er maar weinig alternatieven voor safe-mode. Je kan er tijdens het schrijven van scripts beter van uit gaan dat het wel aan staat.
MPM is Apache 2, niet 1. Onder Apache 1 zijn d'r een aantal alternatieven, oa suPHP en mod_suid.

Safemode is echt een pain in the ass zoals men zegt, en is een behoorlijke belasting voor de support desk van een ISP :)
Pagina: 1