suPHP ervaringen

Pagina: 1
Acties:

  • muis
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
Al enige tijd kom ik berichten tegen over suPHP om php onder een eigen user te laten draaien binnen apache. http://www.suphp.org

Dat ziet er mooi uit allemaal.
Alleen maak ik me een beetje zorgen om de performance. Op een ander forum las ik dat suPHP niet trager was dan de normale buildin PHP module in apache.

Maar wanneer ik met een simpel perl scrippie zo'n 750 keer een php script (socket verbinding openen naar de webserver) aanroep wat niet meer doet dan "hello world" printen dan zie ik toch een enorm verschil (5.5 sec vs 29 sec).

Is dit nou juist of heb ik misschien een brakke instelling? En zijn er misschien nog mensen die al ervaringen hebben suPHP?

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)


  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

suPHP werkt met een externe suid binary, en gebruikt een fork() en een exec(). Dat heeft ook als nadeel dat apache een extra child moet aanmaken om het request af te handelen.

Een alternatief staat mod_suid, die een user change doet per request en dus geen performance problemen heeft.

  • muis
  • Registratie: Oktober 2001
  • Laatst online: 18-11-2022
igmar schreef op 22 januari 2004 @ 22:34:
suPHP werkt met een externe suid binary, en gebruikt een fork() en een exec(). Dat heeft ook als nadeel dat apache een extra child moet aanmaken om het request af te handelen.

Een alternatief staat mod_suid, die een user change doet per request en dus geen performance problemen heeft.
Deze was ik inderdaad ook tegengekomen maar daarvoor moet je apache als root draaien en ik geloof dat dat niet zo'n goed idee is toch?

Een vergissing is menselijk maar om er een puinhoop van te maken heb je een computer nodig (met mij erachter)


  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Apache draai je normaalgesproken sowieso als root, alleen de Childs die Apache spawnt komen onder een ander UserID, meestal www of nobody.

Everyone complains of his memory, no one of his judgement.


  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

muis schreef op 22 januari 2004 @ 22:51:
Deze was ik inderdaad ook tegengekomen maar daarvoor moet je apache als root draaien en ik geloof dat dat niet zo'n goed idee is toch?
De childs draaien onder de nobody user. De root permissies zijn nodig ivm de sui*uid() calls.

  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 21-02 21:12
igmar schreef op 23 januari 2004 @ 08:26:
[...]
De root permissies zijn nodig ivm de sui*uid() calls.
En om poort 80 te kunnen gebruiken toch ? Normale users mogen alleen
porten >1024 gebruiken ?

I haven't lost my mind! It's backed up on tape somewhere!


  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Dr.DNA schreef op 23 januari 2004 @ 08:45:
En om poort 80 te kunnen gebruiken toch ? Normale users mogen alleen
porten >1024 gebruiken ?
Dan is als root starten genoeg, het binden van poorten is echter niet gerelateerd aan de module.

Verwijderd

sebas schreef op 22 januari 2004 @ 23:01:
Apache draai je normaalgesproken sowieso als root, alleen de Childs die Apache spawnt komen onder een ander UserID, meestal www of nobody.
maar wanneer je van mod_suid gebruik maakt, draaien alle childs volgens mij ook als root. Je kan nl pas bepalen naar wie ge-su'd moet worden, zodra je weet welke user het is. Je weet pas welke user het is, als de request binnen is.

Dat maakt apache extra vulnerable voor attacks die plaats kunnen vinden _voor_ de setuid heeft plaatsgevonden.

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Verwijderd schreef op 23 januari 2004 @ 09:22:
maar wanneer je van mod_suid gebruik maakt, draaien alle childs volgens mij ook als root. Je kan nl pas bepalen naar wie ge-su'd moet worden, zodra je weet welke user het is.
En totdat je dat weet setuid() je naar de standaard user waar Apache onder draait normaliter (wwwuser, nobody).
Je weet pas welke user het is, als de request binnen is.

Dat maakt apache extra vulnerable voor attacks die plaats kunnen vinden _voor_ de setuid heeft plaatsgevonden.
Nope, dat is niet het geval. D'r is een extra risico vanwege het saved uid dat 0 is, maar dat risico is beperkt.
Pagina: 1