Scoutnet vzw

We connect scouts!
Het is momenteel 16 Nov 2024 2:23

Alle tijden zijn UTC + 1 uur




Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 4 berichten ] 
Auteur Bericht
BerichtGeplaatst: 18 Jan 2004 20:23 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 27 Nov 2002 0:00
Berichten: 91
Wat is er allemaal gaande met de register_globals ?
Weet dat je er dan aankan met $_POST resp $_GET maar dacht dat deze standaard nog op on staat. Toch heb ik op verscheidene pagina's problemen met de 'onveilige' methode. En heb momenteel niet veel tijd (lang leve de partieels) om dit allemaal aan te passen.
een php_flag register_globals on in .htaccess werkte ook niet correct iemand een oplossing ?


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 22 Jan 2004 21:54 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 22 Jan 2004 0:00
Berichten: 773
Als je user input wil lezen van bijvoorbeeld een GET (dus een user roept bijvoorbeeld bla.php?naam=pietje aan) dan gebruik je $_GET['naam'] om te weten te komen welke naam de user heeft ingevuld, in dit geval dus 'pietje'.

Omdat dit nogal omslachtig is (vroeger was het zelfs nog langer: $HTTP_GET_VARS['naam'] ) is/was er register_globals. Als register_globals op on staat maakt php automatisch 'korte variabelen' aan. In dit voorbeeld zou je dus de variable $naam kunnen oproepen en daar zou dan 'pietje' inzitten. Handig.

Maar (ja, natuurlijk is er een maar) als je nu bijvoorbeeld in je code

if($naam == 'agent007'){
authorized = true;
}

if($autorized){
toonGeheimeDinges();
}

had staan dan kan iemand bijvoorbeeld bla.php?autorized=true aanroepen en dan de GeheimeDinges zien.

Je had dit natuurlijk kunnen voorkomen door $autorized eerst te initializeren (wat je eigenlijk altijd zou moeten doen). Bijvoorbeeld:

$autorized = false; //de waarde van autorized die meegegeven werd met GET wordt hier overschreven

if($naam == 'agent007'){
authorized = true;
}

if($autorized){
toonGeheimeDinges();
}


Maar om absoluut zeker te zijn kan je ook register_globals off zetten. Dan zijn er geen korte namen voor dingen zoals $_GET['autorized'] (korte naam zou dus $autorized zijn). En kan je user dus geen variabelen invullen die nog niet geinitializeerd waren.

De enige manier om dan aan je user input te geraken is dus via $_GET, $_POST, ...

Ik hoop dat ik een beetje duidelijk was, en als je nog vragen hebt, stel ze gerust :)


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Jan 2004 12:14 
Offline
Site Admin
Site Admin
Gebruikers-avatar

Geregistreerd: 17 Jul 2002 23:00
Berichten: 1522
Woonplaats: Wetteren
Bedankt voor de uitleg hopla; nu ben ik ook volledig mee! Alleen geen goed nieuws eigenlijk, want onze site maakt gebruik van honderden globale variabelen... :cry:

Het zal iets worden voor een volgende versie van de site; ergens begin volgend werkjaar? (de huidige site is amper 2,5 maanden oud en we zijn al bezig over een nieuwe site :wink: Of hoe een site al verouderd is tegen dat hij af is... lol)

To


Omhoog
 Profiel  
 
 Titel:
BerichtGeplaatst: 23 Jan 2004 14:09 
Offline
 
 
Gebruikers-avatar

Geregistreerd: 27 Nov 2002 0:00
Berichten: 91
Citaat:
Als je user input wil lezen van bijvoorbeeld een GET (dus een user roept bijvoorbeeld bla.php?naam=pietje aan) dan gebruik je $_GET['naam'] om te weten te komen welke naam de user heeft ingevuld, in dit geval dus 'pietje'.


Weet het maar maak gebruik van de korte namen en kreeg op sommige pagina's problemen die ik ervoor niet had. De meeste zijn ondertussen opgelost. (nee Murphy ni kwaad worden weet wel dat er nog fouten zijn)


Omhoog
 Profiel  
 
Berichten weergeven van de afgelopen:  Sorteer op  
Plaats een nieuw onderwerp Reageren op dit onderwerp  [ 4 berichten ] 

Alle tijden zijn UTC + 1 uur


Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten


U mag geen nieuwe onderwerpen plaatsen in dit forum
U mag geen reacties plaatsen op onderwerpen in dit forum
U mag uw berichten niet wijzigen in dit forum
U mag uw berichten niet verwijderen in dit forum
U mag geen bijlagen plaatsen in dit forum

Zoeken naar:
Ga naar:  
Powered by phpBB® Forum Software © phpBB Group
Vertaald door phpBBservice.nl.