NE2000 3-9 augustus, Elburg Open-air lan-party, 5 jaar alweer! Computers, kamperen, kampvuur, activiteiten, schier-eiland, dropping, tap-eiland, lezingen, workshops, bands, gezelligheid. NE2000, de andere Lanparty
Edit: Oja, een provider zet dan altijd de execute-rechten op de cgi-bin directory aan
[ Voor 24% gewijzigd door Eelke Spaak op 03-04-2004 19:54 ]
Er is geen enkele technische reden waarom je geen executable files in de hoofddirectory zou kunnen plaatsen.
Wel dus: er moeten execute-rechten zijn voor executable files.Soultaker schreef op 03 april 2004 @ 19:56:
Ik denk dat het een overblijfsel is uit de tijd dat het gros van de pagina's statisch was en er maar een beperkt aantal programma's waren die in cgi-bin geplaatst werden. Dat waren immers uitzonderingen.
Er is geen enkele technische reden waarom je geen executable files in de hoofddirectory zou kunnen plaatsen.
exact, en door hiervoor 1 dir af te sprken is het mooi overzichtelijk op welke dirs speciale rechten gezet zijn.Vladimir G. schreef op 03 april 2004 @ 19:57:
[...]
Wel dus: er moeten execute-rechten zijn voor executable files.
PHP e.d. worden client-side uitgevoerd, cgi/perl server-side, vandaar het verschil.
snel zeggen: 'De koetsier poetst de postkoets met postkoetspoets'
levensmotto: 'vroeg gedaan is lang gerelaxed!'.
PHP client side?? Ik geloof dat je altijd nog een PHP phraser op de server nodig hebt om PHP te phrasen naar HTML wat je browser snapt.aardbeix15 schreef op 03 april 2004 @ 19:59:
[...]
exact, en door hiervoor 1 dir af te sprken is het mooi overzichtelijk op welke dirs speciale rechten gezet zijn.
PHP e.d. worden client-side uitgevoerd, cgi/perl server-side, vandaar het verschil.
PHP heeft als voordeel dat het geen ongecontroleerde programma's c.q. services op de server kan starten en dus beter te beveiligen is.
Te dure camere, te veel lenzen, te weinig tijd. O, en iets dat flitst
Euhm dat is dan ook weer niet helemaal waaraardbeix15 schreef op 03 april 2004 @ 19:59:
[...]
PHP e.d. worden client-side uitgevoerd, cgi/perl server-side, vandaar het verschil.
Verwijderd
Anders zou je maar even op elke webserver php kunnen draaien
EDIT: te laat!
(Vladimir slaat de spijker op de kop)
[ Voor 15% gewijzigd door Verwijderd op 03-04-2004 20:05 ]
Op mijn eigen server heb ik dit aangepast, daar mag ik overal scripts neerzetten (dan kun je tenminste mooie url's maken en index.pl scripts gebruiken)
Maar het gros van de providers houdt er aan vast dat je scripts alleen in cgi-bin neetzet. (vaak kun je dat met .htaccess files wel overrulen, maar a) soms vinden ze het niet leuk dat je dat doet en maken ze het ongedaan zodra ze er achter komen b) Ik ben nog geen provider tegengekomen die dat duidelijk maakt in het overzichtje van hun diensten.
Aardbei: php wordt echt serverside uitgevoerd. Om 'voor het overzicht' perl-scripts alleen in cgi-bin toe te staan staat in vreemde verhouding tot php-scripts die wel overal worden toegestaan.
-edit-
Met mod_perl wordt ook perl door een parser gehaald en ik kan ook met php system calls doen. Wat beveiliging betreft zie ik het verschil niet. Misschien dat bugs in perl (niet mod_perl) makkelijker te exploiten zijn dan in php vanwege de parser?
En idd: het is een interpreter. Maar ook perl-scripts worden uitgevoerd door een interpreter, nl perl. Het verschil is dat php een apache module is (net als mod_perl) en perl niet. maar nogmaals, ik zie niet in waarom dat zou verklaren waarom je php wel overal toestaat, maar perl niet.
Het enige verschil dat ik zie is dat als je de execute-rechten vergeet in de cgi-bin directory is dat je dan een server error krijgt terwijl je in de www-directories de source van het script in de browser krijgt. Dat laatste wil je niet, maar dan heb je het script ook nooit uitgevoerd gehad, de kans dat je dat vergeet is extreem klein.
[ Voor 36% gewijzigd door RolandWitvoet op 03-04-2004 20:24 ]
NE2000 3-9 augustus, Elburg Open-air lan-party, 5 jaar alweer! Computers, kamperen, kampvuur, activiteiten, schier-eiland, dropping, tap-eiland, lezingen, workshops, bands, gezelligheid. NE2000, de andere Lanparty
Interpreter heet zoiets, parser is daar alleen een onderdeel vanCrossMozes schreef op 03 april 2004 @ 20:02:
PHP client side?? Ik geloof dat je altijd nog een PHP phraser op de server nodig
PHP draait als module niet veiliger dan een CGI programma. In tegendeel zelfs: php draait in hetzelfde process als de webserver en heeft daardoor dezelfde rechten als de webserver. Bijvoorbeeld leesrechten in files van andere gebruikers. Dit wordt opgelost door de safe-mode te gebruiken, zodat php scripts zelf dit niet zomaar kunnen. Maar als je shell commando's uitvoert vanaf php dan wordt die controle bijvoorbeeld niet gedaan (hoewel bij het starten van de shell wel weer de juiste gebruiker kan worden gekozen). Of wat te denken van een exploits via bugs in php...PHP heeft als voordeel dat het geen ongecontroleerde programma's c.q. services op de server kan starten en dus beter te beveiligen is.
CGI programma's kunnen daarentegen wel onder de juiste gebruiker worden uitgevoerd door de juiste rechten aan de cgi-executable te geven.
putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]
suPHP of mod_suid, ik zie geen problemen.Soultaker schreef op 03 april 2004 @ 22:03:
Ik heb het altijd jammer gevonden dat PHP scripts niet gewoon als de gebruiker uitvoeren van wie de scripts zijn, wat zowel om beveiligingsreden als terwille van de functionaliteit (nieuwe bestanden aanmaken in de homedirectory van de gebruiker) veel beter zou zijn. Om dat mogelijk te maken zou de webserver onder de rootuser moeten draaien en dat gebeurt tegenwoordig (terecht) steeds minder.
mod_suid werkt dus alleen als Apache als root draait en dat is in verband met mogelijke exploits niet echt aantrekkelijk. Voor zover ik kan zien voert suPHP gewoon de CGI versie van PHP uit en ik zie dan ook niet wat daar de voordelen van zijn ten opzichte van direct CGI scripts gebruiken.igmar schreef op 04 april 2004 @ 00:42:
suPHP of mod_suid, ik zie geen problemen.
Zelfs als een van beide oplossingen zou werken, blijft het nog steeds wachten op de hosting providers die er daadwerkelijk gebruik van maken.
jantje bezoekt een php-pagina van een forum en veranderd bijvoorbeeld zijn signature. Ondertussen doet Pietje hetzelfde. Jantje upload de database weer (met zijn nieuwe signature) en Pietje doet dat ook (met Jantjes oude signature).
Grote databases download: ook bijzonder leuk voor niet-breedbandgebruikers.
[ Voor 9% gewijzigd door muba op 04-04-2004 14:12 ]
Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea
NE2000 3-9 augustus, Elburg Open-air lan-party, 5 jaar alweer! Computers, kamperen, kampvuur, activiteiten, schier-eiland, dropping, tap-eiland, lezingen, workshops, bands, gezelligheid. NE2000, de andere Lanparty
Heb je ooit wel eens de code ingekeken ? De childs blijven ook met mod_suid gewoon als de apache user draaien. De enige reden waarom die recompile nodig is is om te voorkomen dat apache setuid() calls gaat lopen doen.Soultaker schreef op 04 april 2004 @ 01:32:
mod_suid werkt dus alleen als Apache als root draait en dat is in verband met mogelijke exploits niet echt aantrekkelijk.
D'r is wel een extra risico kwa security, maar dat is met alle services zo.
mod_suid wordt vaker gebruikt als men denkt, ik heb helaas nog steeds geen weg gevonden om netcraft dat te laten zien.Zelfs als een van beide oplossingen zou werken, blijft het nog steeds wachten op de hosting providers die er daadwerkelijk gebruik van maken.
Moet je er natuurlijk wel voor zorgen dat alle clients de juiste software (libs, drivers) hiervoor hebben. Niet elke connectie loopt via ODBCRolandWitvoet schreef op 05 april 2004 @ 15:51:
Het is absoluut off-topic, maar databases kun je ook client-side gebruiken zonder dat je daarvoor de database-file hoeft te verplaatsen. Je kunt gewoon connecten naar de database. Je scripts doen dat op localhost, maar je kunt ook naar een externe machine connecten (mits die dat toestaat)
Als "hoster" wil ik enige controle hebben over welke CGI scripts er draaien op een server, aangezien CGI script rechtstreeks worden uitgevoerd zonder verder enige beperking (eventuele rechten beperking of een ge-chroote webserver, maar verder..). Met bijv. PHP in safemode is het één en ander nog uit te schakelen en in te stellen, met CGI heb je hier totaal geen controle op.
Komt daarbij dat een CGI programma maken iets meer moeite kost dan een PHP script, en een groot deel van de web devvers tegenwoordig die moeite niet meer neemt of wil nemen.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Een PHP script hoeft geen executable rechten te hebben om te worden uitgevoerd. Als de webserver het script kan lezen, kan hij dit prima voeren aan de PHP interpreter.RolandWitvoet schreef op 03 april 2004 @ 20:10:
Het enige verschil dat ik zie is dat als je de execute-rechten vergeet in de cgi-bin directory is dat je dan een server error krijgt terwijl je in de www-directories de source van het script in de browser krijgt. Dat laatste wil je niet, maar dan heb je het script ook nooit uitgevoerd gehad, de kans dat je dat vergeet is extreem klein.
Overigens heeft het wel of niet hebben van een executable recht in deze context vrij weinig te maken met security. Tenzij je dus gebruikers overal cgi scripts laat maken. Andere gebruikers met shell access kunnen dan ook deze scripts uitvoeren. Lat je dit door een hoster in de cgi-bin zetten dan kan de hoster dit voorkomen.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney