Webhosting
PHP
Wat is PHP?
Support
PHP-configuratie
PHP Safe mode
Register Globals
Wat is CGI?
CGI Permissies





Dit artikel heeft betrekking op het volgende product:
Webhosting

Register Globals

Vanaf PHP versie 4.2.0 is de afhandeling van bepaalde variabelen in PHP gewijzigd. Hierdoor komt het voor dat bijvoorbeeld e-mailformulieren en Content Management Systemen niet meer correct functioneren.

Voorheen konden variabelen verstuurt via formulieren of een URL simpelweg uitgelezen worden middels een echo van variabelen. Sinds de wijziging in PHP 4.2.0 is dit, met oog op de veiligheid van uw webapplicaties, gewijzigd.

In de oude situatie kon u bijvoorbeeld via de URL van uw website waardes aan variabelen meegeven. Hierbij werd er geen onderscheid gemaakt tussen variabelen die via een formulier, URL of een andere methode werden verzonden. Kwaadwillende gebruikers konden hierdoor uw webapplicatie manipuleren waardoor bijvoorbeeld de veiligheid van Content Management Systemen sterk werd beïnvloed.

Een klein voorbeeld hiervan zullen we uitleggen middels het onderstaande bestand:

[variabele.php]:
<?
if(isset($variabele)){
echo 'De variabele heeft een waarde';
}else{
echo 'Er is geen waarde voor de variabele';
}
?>

In uw applicatie had u er voorheen bijvoorbeeld op gerekend dat deze variabele werd gedefinieerd via een HTML-formulier. Een kwaadwillende gebruiker kan in dit geval echter hetzelfde effect bereiken door de variabele als volgt in de webbrowser op te vragen:

http://www.domein.ext/variabele.php?variabele=waarde

In de nieuwe situatie wordt een dergelijke probleem opgevangen middels zogenaamde Super Globals, wanneer het script bijvoorbeeld alleen waardes mag ontvangen van een webformulier gebeurt dit nu als volgt:

[variabele.php]
<?
if(isset($_POST['variabele'])){
echo 'De variabele heeft een waarde';
}else{
echo 'Er is geen waarde voor de variabele';
}
?>

Hierbij kan de variabele alleen voorzien worden van een waarde wanneer dit gebeurt via de zogenoemde POST methode.

Gedetailleerde uitleg over Register Globals kunt u vinden op de website van PHP: http://nl3.php.net/register_globals.
Informatie over de verschillende Super Globals in PHP kunt u vinden op: http://nl2.php.net/variables.predefined.

Hostnet raadt u altijd aan gebruik te maken van Super Globals, wanneer u er echter op staat gebruik te maken van Register Globals kunt u dit gemakkelijk activeren door een .htaccess bestand in uw httpdocs folder te plaatsen. De inhoud van dit bestand dient als volgt te zijn:

[.htaccess]:
php_flag register_globals on

Mocht u onverhoopt problemen ondervinden bij het instellen van een .htaccess bestand kunt u uiteraard altijd contact opnemen met onze Helpdeskafdeling. De Helpdesk kunt u bereiken per e-mail via Dit e-mail adres is beschermd tegen spambots. U heeft Javascript nodig om het te kunnen zien. of per telefoon op nummer 020-7500800.