Hoe beveiligde handelingen werken

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!

Auteur hanjo Gepubliceerd op: Aangepast: 12/03/23

Vertalingen: English, français, Nederlands