Hoort bij: PHP — Tags:, , , , , , — admin @ 30 oktober 2008 23:25

De meeste scripters onder jullie die met PHP bezig zijn kennen wel de code.

0
header( "Location: http://www..." );

Maar is deze code nu eigenlijk veilig? De meeste scripters gaan er gewoon blindelings vanuit dat deze header regel een redirect als gevolg gaat hebben. Maar het werken van deze redirect zal gewoon afhangen van hoe we de webpagina gaan bekijken. Stel nu dat we een pagina met een header redirect gaan bekijken in een command line, denk je dat deze redirect dan nog gaat werken? Ik weet wel zeker dat dit niet zo zal zijn.

Even een voorbeeld. We hebben een pagina met de volgende code:

0
1
2
3
4
5
6
7
<?php
if ($_SESSION["gebruiker"] != 1)
{
header("Location: login.php");
}
 
echo "Een heel groot geheim dat niet leden zeker niet mogen lezen.";
?>

Als we deze in een browser gaan bekijken krijgen we dit:

Redirect naar login pagina
Browser wordt doorgestuurd naar login pagina

Je wordt meteen doorgestuurd naar de login pagina. Maar wat krijg je te zien als je deze admin pagina nu eens bekijkt via netcat die de HTTP header location niet kan afhandelen.

Netcat gebruiken als browser
Admin pagina bekijken met netcat

Je krijgt gewoon het geheim te zien op het scherm. Dit is dus niet echt veilig.

Veilige header redirect

Hoe kunnen we bovenstaande code nu beveiligen?Er zijn twee manieren om dit te doen.

Methode 1:

0
1
2
3
4
5
6
7
8
<?php
if ($_SESSION["gebruiker"] != 1)
{
header("Location: login.php");
exit();
}
 
echo "Een heel groot geheim dat niet-leden zeker niet mogen lezen.";
?>

Methode 2:

0
1
2
3
4
5
6
7
<?php
if ($_SESSION["gebruiker"] != 1)
{
header("Location: login.php");
}else{
echo "Een heel groot geheim dat niet-leden zeker niet mogen lezen.";
}
?>
Stem of voeg toe aanUitleg over het gebruik van deze icons :  Plaatsen/stemmen op NUjij Plaatsen/stemmen op eKudos Plaatsen/stemmen op MSN Reporter Plaatsen/stemmen op Digg Stumble it! Voeg dit artikel toe aan Del.icio.us Voeg toe aan je Google bladwijzers Abonneer je op de RSS-feed van deze site Verstuur deze pagina per e-mail via Feedburner

Reacties

Reageren? »

Reageren?

Berichten RSS voor reacties op dit bericht. TrackBack URL

Geef een reactie