Skip to content
Extraits de code Groupes Projets
Valider 0ab0dc62 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

les action/editer_ acceptent de recevoir $arg en argument de la fonction au...

les action/editer_ acceptent de recevoir $arg en argument de la fonction au lieu de _request, et dans ce cas n'ont pas besoin d'etre securisees.
Permettra d'eviter l'injection de arg et hash en input hidden dans les formulaires.
parent 78485c4d
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -13,10 +13,12 @@ ...@@ -13,10 +13,12 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@action_editer_article_dist // http://doc.spip.org/@action_editer_article_dist
function action_editer_article_dist() { function action_editer_article_dist($arg=null) {
$securiser_action = charger_fonction('securiser_action', 'inc'); if (is_null($arg)){
$arg = $securiser_action(); $securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
// si id_article n'est pas un nombre, c'est une creation // si id_article n'est pas un nombre, c'est une creation
// mais on verifie qu'on a toutes les donnees qu'il faut. // mais on verifie qu'on a toutes les donnees qu'il faut.
......
...@@ -13,9 +13,12 @@ ...@@ -13,9 +13,12 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@action_editer_auteur_dist // http://doc.spip.org/@action_editer_auteur_dist
function action_editer_auteur_dist() { function action_editer_auteur_dist($arg=null) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action(); if (is_null($arg)){
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
// si id_auteur n'est pas un nombre, c'est une creation // si id_auteur n'est pas un nombre, c'est une creation
......
...@@ -13,10 +13,12 @@ ...@@ -13,10 +13,12 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@action_editer_breve_dist // http://doc.spip.org/@action_editer_breve_dist
function action_editer_breve_dist() { function action_editer_breve_dist($arg=null) {
$securiser_action = charger_fonction('securiser_action', 'inc'); if (is_null($arg)){
$arg = $securiser_action(); $securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
// Envoi depuis les boutons "publier/supprimer cette breve" // Envoi depuis les boutons "publier/supprimer cette breve"
if (preg_match(',^(\d+)\Wstatut\W(\w+)$,', $arg, $r)) { if (preg_match(',^(\d+)\Wstatut\W(\w+)$,', $arg, $r)) {
......
...@@ -15,10 +15,12 @@ if (!defined("_ECRIRE_INC_VERSION")) return; ...@@ -15,10 +15,12 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/filtres'); include_spip('inc/filtres');
// http://doc.spip.org/@action_editer_message_dist // http://doc.spip.org/@action_editer_message_dist
function action_editer_message_dist() { function action_editer_message_dist($arg=null) {
$securiser_action = charger_fonction('securiser_action', 'inc'); if (is_null($arg)){
$arg = $securiser_action(); $securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
if (preg_match(',^(\d+)$,', $arg, $r)) if (preg_match(',^(\d+)$,', $arg, $r))
action_editer_message_post_vieux($arg); action_editer_message_post_vieux($arg);
......
...@@ -16,10 +16,13 @@ include_spip('inc/filtres'); ...@@ -16,10 +16,13 @@ include_spip('inc/filtres');
// Editer (modification) d'un mot-cle // Editer (modification) d'un mot-cle
// http://doc.spip.org/@action_editer_mot_dist // http://doc.spip.org/@action_editer_mot_dist
function action_editer_mot_dist() function action_editer_mot_dist($arg=null)
{ {
$securiser_action = charger_fonction('securiser_action', 'inc'); if (is_null($arg)){
$id_mot = intval($securiser_action()); $securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
$id_mot = intval($arg);
$id_groupe = intval(_request('id_groupe')); $id_groupe = intval(_request('id_groupe'));
if (!$id_mot AND $id_groupe) { if (!$id_mot AND $id_groupe) {
......
...@@ -15,10 +15,12 @@ if (!defined("_ECRIRE_INC_VERSION")) return; ...@@ -15,10 +15,12 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/rubriques'); include_spip('inc/rubriques');
// http://doc.spip.org/@action_editer_rubrique_dist // http://doc.spip.org/@action_editer_rubrique_dist
function action_editer_rubrique_dist() { function action_editer_rubrique_dist($arg=null) {
$securiser_action = charger_fonction('securiser_action', 'inc'); if (is_null($arg)){
$arg = $securiser_action(); $securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
if (!$id_rubrique = intval($arg)) { if (!$id_rubrique = intval($arg)) {
if ($arg != 'oui') { if ($arg != 'oui') {
......
...@@ -13,10 +13,12 @@ ...@@ -13,10 +13,12 @@
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
// http://doc.spip.org/@action_editer_site_dist // http://doc.spip.org/@action_editer_site_dist
function action_editer_site_dist() { function action_editer_site_dist($arg=null) {
$securiser_action = charger_fonction('securiser_action', 'inc'); if (is_null($arg)){
$arg = $securiser_action(); $securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
$resyndiquer = false; $resyndiquer = false;
include_spip('inc/filtres'); // pour vider_url() include_spip('inc/filtres'); // pour vider_url()
......
...@@ -18,7 +18,7 @@ function formulaires_editer_objet_traiter($type, $id='new', $id_parent=0, $lier_ ...@@ -18,7 +18,7 @@ function formulaires_editer_objet_traiter($type, $id='new', $id_parent=0, $lier_
$res = array(); $res = array();
$action_editer = charger_fonction("editer_$type",'action'); $action_editer = charger_fonction("editer_$type",'action');
list($id,$err) = $action_editer(); list($id,$err) = $action_editer($id);
$id_table_objet = id_table_objet($type); $id_table_objet = id_table_objet($type);
$res[$id_table_objet] = $id; $res[$id_table_objet] = $id;
if ($err){ if ($err){
...@@ -116,7 +116,10 @@ function formulaires_editer_objet_charger($type, $id='new', $id_parent=0, $lier_ ...@@ -116,7 +116,10 @@ function formulaires_editer_objet_charger($type, $id='new', $id_parent=0, $lier_
$contexte['extra'] = unserialize($contexte['extra']); $contexte['extra'] = unserialize($contexte['extra']);
// preciser que le formulaire doit passer dans un pipeline // preciser que le formulaire doit passer dans un pipeline
$contexte['_pipeline'] = array('editer_contenu_objet',array('type'=>$type,'id'=>$id)); $contexte['_pipeline'] = array('editer_contenu_objet',array('type'=>$type,'id'=>$id));
// preciser que le formulaire doit etre securise auteur/action // preciser que le formulaire doit etre securise auteur/action
// n'est plus utile lorsque l'action accepte l'id en argument direct
// on le garde pour compat
$contexte['_action'] = array("editer_$type",$id); $contexte['_action'] = array("editer_$type",$id);
return $contexte; return $contexte;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter