Hallo allemaal,

Is het eigenlijk mogelijk om aan een header location iets mee te geven waardoor de aangeroepen pagina weet dat het een legitieme aanroep is?

Dus stel, pagina A is gemachtigd om pagina B aan te roepen via header(). Kun je nu vanuit pagina A iets meesturen waardoor pagina B weet dat pagina A hem heeft aangeroepen?

Oh ja, en dan zoek ik een "static" oplossing, dus zonder het gebruik van een database, cookies of sessions.
Ik denk dat dit allemaal veel te complex is. Ik zoek niet daadwerkelijk autorisatie met een wachtwoord. Ik zoek enkel een oplossing waardoor B ziet dat ie door A is aangeroepen..
Via een ?token=123abc dus ;)
Dat is de enige goede manier.
$_SERVER['REFERER'] wordt dus niet altijd meegegeven en dus onbetrouwbaar.
Thanks Eddy. Niet helemaal ideaal, want de gebruiker kan dan alsnog de URL inclusief token opslaan, maar het zal dan inderdaad wel de richting zijn waarin ik het moet zoeken. Bedankt voor het meedenken!
Dan maak je die dynamisch, al is het schijnveiligheid:

<?php
$token = base64(date("dmY-H:i") . 'jegeheimewachtwoordzondergekketekens';
$token = str_rot13($token);
header("Location: pagina_b.php?token='.$token);
?>

<?php
$token = $_GET['token'];
$orgineel = str_rot13($token);
$base64_lengte = strlen(base64(date("dmY-H:i"));
$datum = substr($orgineel, 0, $base64_lengte);
$wachtwoord = substr($orgineel, $base64_lengte);

if($wachtwoord != 'jegeheimewachtwoordzondergekketekens')
{
// fout!
// gebruik $datum om tijdstip van aanmaken van die token op te slaan oid?
}
else
{
// hoera!
}
?>
Eddy, dat ziet er niet gek uit! Geinig gemaakt. Ik denk dat dit concept inderdaad wel zou moeten werken. Thanks! :-)
Je zou ook de seconde er aan toe kunnen voegen.
Plus de tijd van 1 seconde geleden. Dan weet je ook dat hij 'vers' is en dus niet van eerder opgeslagen is.
Inderdaad. Ik zal er (als ik tijd heb) eens wat mee gaan spelen :)
Ik zie net dat ik base64 schrijf: dat moet natuurlijk base64_encode() zijn ;)
De strekking was duidelijk ;)

Reageren