Skip to content
Extraits de code Groupes Projets
Valider 5f0c7d9f rédigé par esj's avatar esj
Parcourir les fichiers

Tres fort: depuis le debut de Spip on avait un XSS dans la fonction de controle d'acces

parent e0924e18
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -251,7 +251,7 @@ function renouvelle_alea()
function _action_auteur($action, $id_auteur, $nom_alea) {
if (!$id_auteur) {
if (!($id_auteur = intval($id_auteur))) {
global $connect_id_auteur, $connect_pass;
$id_auteur = $connect_id_auteur;
$pass = $connect_pass;
......
......@@ -14,7 +14,6 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_ecrire("inc_charsets"); # pour le nom de fichier
include_ecrire("inc_session"); # verifier_action_auteur
include_ecrire("inc_abstract_sql");# spip_insert / spip_fetch...
// acces aux documents joints securise
......
......@@ -12,15 +12,8 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_ecrire("inc_session"); # verifier_action_auteur
function spip_action_iconifier_dist()
{
global $action, $hash, $id_auteur, $arg, $image;
if (!verifier_action_auteur("$action $arg", $hash, $id_auteur))
die ($action . '!!!');
if ($_SERVER['REQUEST_METHOD'] == 'POST')
spip_image_ajouter_dist();
else spip_image_effacer_dist();
......
......@@ -12,31 +12,24 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_ecrire("inc_session");
function spip_action_instituer_dist()
{
global $arg, $action, $hash, $id_auteur;
if (!verifier_action_auteur("$action $arg", $hash, $id_auteur))
spip_log("spip_action: $action $arg interdit a $id_auteur");
else {
ereg("^([^ ]*) (.*)$", $arg, $r);
$var_nom = 'instituer_' . $r[1];
if (function_exists($var_nom))
$var_nom($r[2]);
else spip_log("spip_action_$action: $arg incompris");
}
global $arg, $action ;
ereg("^([^ ]*) (.*)$", $arg, $r);
$var_nom = 'instituer_' . $r[1];
if (function_exists($var_nom))
$var_nom($r[2]);
else spip_log("spip_action_$action: $arg incompris");
}
function instituer_collaboration($debloquer_article)
{
global $id_auteur;
if ($debloquer_article) {
if ($debloquer_article AND ($id_auteur = intval($id_auteur))) {
if ($debloquer_article <> 'tous')
$where_id = "AND id_article=".intval($debloquer_article);
$query = "UPDATE spip_articles SET auteur_modif='0' WHERE auteur_modif=$id_auteur $where_id";
spip_query ($query);
spip_query ("UPDATE spip_articles SET auteur_modif='0' WHERE auteur_modif=$id_auteur $where_id");
}
}
......
......@@ -13,29 +13,23 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_ecrire("inc_charsets"); # pour le nom de fichier
include_ecrire("inc_session"); # verifier_action_auteur
include_ecrire("inc_abstract_sql");# spip_insert / spip_fetch...
include_ecrire('inc_getdocument');
function spip_action_joindre_dist()
{
global
$arg,
global $hash, $id_auteur, $arg, $redirect,
$sousaction1,
$sousaction2,
$sousaction3,
$sousaction4,
$sousaction5,
$action, $hash, $id_auteur,
$url, $chemin, $ancre, $type, $id, $id_document, $redirect,
$url, $chemin, $ancre, $type, $id, $id_document,
$_FILES, $HTTP_POST_FILES;
if (!verifier_action_auteur("$action $arg", $hash, $id_auteur))
die ($action . '!!!');
// pas terrible, mais c'est le pb du bouton Submit qui retourne son texte,
// et son transcodage est couteux et perilleux
$action = 'spip_action_joindre' .
$sousaction = 'spip_action_joindre' .
($sousaction1 ? 1 :
($sousaction2 ? 2 :
($sousaction3 ? 3 :
......@@ -47,11 +41,11 @@ function spip_action_joindre_dist()
$documents_actifs = array();
if (function_exists($action))
$action($path, $arg, $type, intval($id), $id_document,
if (function_exists($sousaction))
$sousaction($path, $arg, $type, intval($id), $id_document,
$hash, $id_auteur, $redirect, $documents_actifs);
else spip_log("spip_action: sousaction inconnue $action");
else spip_log("spip_action: sousaction inconnue $sousaction");
if ($documents_actifs) {
$redirect .= '&show_docs=' . join('-',$documents_actifs);
......@@ -61,7 +55,6 @@ function spip_action_joindre_dist()
$redirect .= '#' . $ancre;
}
$redirect = _DIR_RESTREINT . $redirect;
# spip_action fera la redirection.
## redirection a supprimer si on veut poster dans l'espace prive directement (UPLOAD_DIRECT)
}
......
......@@ -12,13 +12,9 @@
if (!defined("_ECRIRE_INC_VERSION")) return; // securiser
include_ecrire("inc_session");
function spip_action_purger_dist()
{
global $arg, $hash, $id_auteur, $action;
if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) exit;
global $arg;
include_ecrire("inc_invalideur");
......
......@@ -13,20 +13,15 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_ecrire("inc_charsets"); # pour le nom de fichier
include_ecrire("inc_session"); # verifier_action_auteur
include_ecrire("inc_abstract_sql");# spip_insert / spip_fetch...
// Effacer un doc (et sa vignette)
function spip_action_supprimer_dist() {
global $action, $hash, $id_auteur, $arg;
if (!verifier_action_auteur("$action $arg", $hash, $id_auteur))
die ($action . '!!!');
global $arg;
$result = spip_query("SELECT id_vignette, fichier
FROM spip_documents
WHERE id_document=$arg");
$arg = intval($arg);
$result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg");
if ($row = spip_fetch_array($result)) {
$fichier = $row['fichier'];
$id_vignette = $row['id_vignette'];
......
......@@ -13,17 +13,13 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_ecrire("inc_charsets"); # pour le nom de fichier
include_ecrire("inc_session"); # verifier_action_auteur
include_ecrire("inc_abstract_sql");# spip_insert / spip_fetch...
function spip_action_tourner_dist() {
global $action, $hash, $id_auteur, $arg;
if (!verifier_action_auteur("$action $arg", $hash, $id_auteur))
die ($action . '!!!');
global $var_rot, $convert_command;
global $arg, $var_rot, $convert_command;
$var_rot = intval($var_rot);
$arg = intval($arg);
$query = "SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg";
$result = spip_query($query);
......
......@@ -11,6 +11,14 @@
\***************************************************************************/
include ("ecrire/inc_version.php3");
if (isset($hash)) {
include_ecrire("inc_session");
if (!verifier_action_auteur("$action $arg", $hash, $id_auteur)) {
die ($action . '!!!');
}
}
$var_f = include_fonction('spip_action_' . $action);
$var_f();
if ($redirect) redirige_par_entete($redirect);
......
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