L’utilisation d’actions sécurisées se passe en deux temps. Il faut d’abord générer un lien avec la clé de sécurité, puis lorsque l’utilisateur clique sur l’action, qui va exécuter une fonction d’un fichier dans le répertoire action/
, il faut vérifier la clé.
La fonction securiser_action()
Cette fonction securiser_action
, dans le fichier ecrire/inc/securiser_action.php, crée ou vérifie une action. Lors d’une création, en fonction de l’argument $mode
, elle créera une URL, un formulaire, ou retournera simplement un tableau avec les paramètres demandés et la clé générée. Lors d’une vérification, elle compare les éléments soumis par GET (URL) ou POST (formulaire) et tue le script avec un message d’erreur et exit
si la clé ne correspond pas à l’auteur actuel.
Génerer une clé
Pour générer une clé, il faut appeler la fonction avec les paramètres corrects :
$securiser_action = charger_fonction('securiser_action', 'inc');
$securiser_action($action, $arg, $redirect, $mode);
Ces quatre paramètres sont les principaux utilisés :
-
$action
est le nom du fichier d’action et de l’action correspondante (action/nom.php
et fonction associéeaction_nom_dist()
) -
$arg
est un argument transmis, par exemplesupprimer/article/3
qui servira entre autre à générer la clé de sécurité. -
$redirect
est une URL sur laquelle se rendre une fois l’action réalisée. -
$mode
indique ce qui doit être retourné :-
false
: une URL -
-1
: un tableau des paramètres - un contenu texte : un formulaire à soumettre (le contenu est alors ajouté dans le formulaire)
-
Dans une action, vérifier et récupérer l’argument
Dans une fonction d’action (action_nom_dist()
), on vérifie la sécurité en appelant la fonction sans argument. Elle retourne l’argument (sinon affiche une erreur et tue le script) :
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
// a partir d'ici, nous savons que l'auteur est bien le bon !