Améliorer la sécurité des objets en utilisant les autorisations
Peut-on ajouter un appel a une nouvelle fonction autoriser_url_ecrire() :
function autoriser_url_ecrire($exec){
$r = true;
if ($e = trouver_objet_exec($exec)){
$autorisation = "autoriser_".$e['edition'] ? 'modifier' : 'voir';
$r = $autorisation($e['type'], $e['id_table_objet']);
}
return $r;
}
dans https://git.spip.net/spip/spip/src/branch/4.1/ecrire/index.php#L166 sous cette forme :
if ($var_f = tester_url_ecrire($exec)) {
if ( autoriser_url_ecrire($exec) ){
$var_f = charger_fonction($var_f);
$var_f(); // at last
} else {
$var_f = charger_fonction('403');
$var_f($exec);
}
} else {
// Rien de connu: rerouter vers exec=404 au lieu d'echouer
// ce qui permet de laisser la main a un plugin
$var_f = charger_fonction('404');
$var_f($exec);
}
L'objectif principal étant de mieux gérer les accès a exec=objets. J'ai l'impression qu'il y a souvent des cas on l'on peut voir la liste d'objets sans pour autant avoir le droit de voir.
Modification effectuée par JamesRezo