De verificaties

De juiste auteur

De meeste SPIP-acties controleren alleen of de huidige auteur inderdaad dezelfde is als degene die voor de actie heeft geklikt. Dit wordt gedaan met:

$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();

De beveiligingsfunctie breekt het script af als de huidige auteur niet degene is die de actie aanvraagt, anders zal het het gevraagde argument teruggeven (in dit geval via $arg).

Het juiste argument

Vervolgens wordt over het algemeen de ontvangen $arg variabele geverifieerd om te zien of deze overeenkomt met wat verwacht werd. Het neemt vaak de vorm "id_object", soms "object/id_object" of complexere zoals datumelementen:

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

En autorisatie

Sommige handelingen controleren ook of de auteur daadwerkelijk die handeling uit mag voeren (maar in het algemeen is deze autorisatie al eerder bevestigd: de link is normaal gesproken niet zichtbaar is als de auteur niet over de juiste rechten beschikt). Bijvoorbeeld om te controleren of de huidige auteur het recht heeft om het forum voor het betreffende artikel te modereren:

if (!autoriser('modererforum', 'article', $id_article))
	return;
// wat ook geschreven zou kunnen worden met een debug-achtig bericht:
if (!autoriser('modererforum', 'article', $id_article)) {
	include_spip('inc/minipres');
	minipres('Moderatie',"Je hebt niet het recht om het forum van dit artikel te modereren");
	exit;
}

Auteur hanjo Gepubliceerd op:

Vertalingen: English, français, Nederlands