Het gebruik van beveiligde handelingen is een proces in 2 stappen. Eerst moet een koppeling met de beveiligingssleutel worden gegenereerd en vervolgens moet die sleutel worden geverifieerd wanneer de gebruiker op de handeling klikt die een bestandsfunctie zal uitvoeren in map
action/
.
{{{De functie securiser_action()}}}
Deze functie
securiser_action
die is opgeslagen in bestand
ecrire/inc/securiser_action.php creëert of verifieert een handeling. Tijdens het aanmaken zal het, afhankelijk van het
$mode
argument, een URL, een formulier of gewoon een array terugsturen met de gevraagde parameters en de gegenereerde sleutel. Tijdens de verificatie vergelijkt het de ingediende elementen met een GET (URL) of POST (formulier) en onderbreekt het script met een foutmelding en
exits
wanneer de sleutel niet overeenkomt met de huidige auteur.
{{{Het maken van de sleutel}}}
Om een sleutel aan te maken, roep je de functie aan met de juiste parameters:
$securiser_action = charger_fonction('securiser_action','inc');
$securiser_action($action, $arg, $redirect, $mode);
Deze vier parameters zijn de belangrijkste:
-*
$action
is de naam van het bestand en de bijbehorende handeling (
action/handeling.php
en de gekoppelde functie
action_handeling_dist()
)
-*
$arg
is een doorgegeven argument, bijvoorbeeld
supprimer/article/3
wat onder andere gebruikt gaat worden om de beveiligingssleutel aan te maken.
-*
$redirect
is een URL waarnaar moet worden doorverwezen nadat de handeling werd uitgevoerd.
-*
$mode
geeft aan wat moet worden geretourneerd:
-**
false
: een URL
-**
-1
: een array met parameters
-** een bepaalde inhoud: een in te sturen formulier (de inhoud wordt dan aan het formulier toegevoegd)
{{{Binnen een handeling het argument ophalen en controleren}}}
Binnen een functie van een handeling (
action_handeling_dist()
) controleren we de beveiligingssleutel door de functie zonder argumenten op te roepen. Het retourneert het argument (en anders wordt een fout getoond en het script wordt onderbroken):
$securiser_action = charger_fonction('securiser_action','inc');
$arg = $securiser_action();
// nu weten we dat de auteur inderdaad de juiste persoon is!