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 :

  1. $securiser_action = charger_fonction('securiser_action', 'inc');
  2. $arg = $securiser_action();

Télécharger

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 :

  1. if (!preg_match(",^\W*(\d+)\W(\w*)$,", $arg, $r)) {
  2. spip_log("action_dater_dist $arg pas compris");
  3. return;
  4. }

Télécharger

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 :

  1. if (!autoriser('modererforum', 'article', $id_article))
  2. return;
  3. // qui pourrait etre aussi :
  4. if (!autoriser('modererforum', 'article', $id_article)) {
  5. include_spip('inc/minipres');
  6. minipres('Moderation',"Vous n'avez pas l'autorisation de régler la modération du forum de cet article");
  7. }

Télécharger

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

Traductions : English, français