Le bon auteur
La plupart des actions de SPIP vérifient uniquement que l’auteur en cours est bien le même que celui qui a cliqué l’action. Cela se fait avec :
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
La fonction de sécurité tue le script si l’auteur actuel n’est pas celui qui a demandé l’action, sinon elle renvoie l’argument demandé (ici dans $arg
).
Le bon argument
Ensuite, généralement, la variable $arg
reçue est vérifiée pour voir si elle est conforme à ce qu’on en attend. Elle prend souvent la forme de « id_objet », parfois « objet/id_objet » ou plus complexe comme ici des éléments de date :
if (!preg_match(",^\W*(\d+)\W(\w*)$,", $arg, $r)) {
spip_log("action_dater_dist $arg pas compris");
return;
}
Et l’autorisation
Certaines actions vérifient en plus que l’auteur a bien l’autorisation d’exécuter cette action (mais en général cette autorisation est déjà donnée en amont : le lien vers l’action n’apparaissant pas pour l’auteur n’en ayant pas les droits). Par exemple :
if (!autoriser('modererforum', 'article', $id_article))
return;
// qui pourrait etre aussi :
if (!autoriser('modererforum', 'article', $id_article)) {
include_spip('inc/minipres');
minipres('Moderation',"Vous n'avez pas l'autorisation de régler la modération du forum de cet article");
exit;
}