Vraag & Antwoord

Webprogrammeren & scripting

REGISTER_GLOBALS, hoezo onveilig?

6 antwoorden
  • Gisteravond was mijn host ineens zo aardig om dat dus op 'off' te zetten waardoor mijn site het dus niet meer deed.. Na veel edit werk doet hij het nu toch weer... Mijn host wist me wel te vertelle dat het onveilig was... maar waarom dan precies wist hij 'ff' niet meer :roll: Dus... waarom is 'REGISTER_GLOBALS' op 'on' onveilig?
  • http://nl3.php.net/register_globals/ tweede alinea
  • [quote:973afacb37="gerben"]http://nl3.php.net/register_globals/ tweede alinea[/quote:973afacb37]Oftwel als je je scripts fatsoenlijk schrijft moet het geen probleem zijn? Worden we daar de duppe weer van :roll: Overigens, nog 1 vraagje naar aanleiding van dat verhaal op die site: $_POST[username] is dus hetzelfde als: $_REQUEST[username] ?
  • Nou, fatsoenlijk, je moet ze geheel anders schrijven. Normaliter hoef je variabelen niet te initaliseren, maar voor de veiligheid moet je dat dan wel doen. Het is sowieso een goede gewoonte om variabelen zo 'lokaal' mogelijk te houden en te initialiseren, maar er zijn maar weinig mensen die dat doen. Het werkt overigens ook andersom: een ander kan jouw variabelen ook uitlezen. En daarmee bijvoorbeeld sessies hijacken.
  • Ik denk niet dat een ander jouw variabelen kan uitlezen Gerben, wel invullen. Dat uitlezen van sessievariabelen is weer een heel ander veiligheidsrisico. $_REQUEST['foo'] en $_POST['foo'] is in zoverre hetzelfde dat in $_REQUEST alle variabelen van zowel $_POST, $_GET, $_COOKIE in 1 array worden gestopt. In je php.ini bestand bepaal je daarbij de volgorde, bijv.: gpc (get, post, cookie) Heb je nu ook een $_COOKIE['foo'], dan overschrijft die binnen de $_REQUEST array de waarde die het heeft gekregen van $_POST['foo'] en zijn die 2 dus niet meer hetzelfde. Maar als jij zeker weet dat er alleen een $_POST['foo'] is en geen $_COOKIE['foo'], ja, dan hebben $_REQUEST['foo'] en $_POST['foo'] dezelfde waarde.
  • [quote:e8625151b6="maIRnaairruJ"] Heb je nu ook een $_COOKIE['foo'], dan overschrijft die binnen de $_REQUEST array de waarde die het heeft gekregen van $_POST['foo'] en zijn die 2 dus niet meer hetzelfde. Maar als jij zeker weet dat er alleen een $_POST['foo'] is en geen $_COOKIE['foo'], ja, dan hebben $_REQUEST['foo'] en $_POST['foo'] dezelfde waarde.[/quote:e8625151b6]Dat hebben ze niet... dank je voor de info, kan ik weer verder... Dit is namelijk veel makkelijker aangezien ik soms niet weet of het een POST of een GET waarde is... :wink:

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.