Les vérifications

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;
}

Auteur Matthieu Marcillaud Publié le : Mis à jour : 24/11/09

Traductions : English, français