Valider 187952ce rédigé par cerdic's avatar cerdic
Parcourir les fichiers

centraliser les tests identiques c'est plus simple a mainteanir

parent 319f0f15
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -32,7 +32,7 @@ function inc_meta_dist($table = 'meta') {
	// en cas d'install ne pas faire confiance au meta_cache eventuel
	$cache = cache_meta($table);

	if ((_request('exec') !== 'install' or !test_espace_prive())
	if ((!$exec = _request('exec') or !autoriser_sans_cookie($exec))
		and $new = jeune_fichier($cache, _META_CACHE_TIME)
		and lire_fichier_securise($cache, $meta)
		and $meta = @unserialize($meta)
+10 −8
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -184,7 +184,8 @@ function caracteriser_auteur($id_auteur = null) {
function _action_auteur($action, $id_auteur, $pass, $alea) {
	static $sha = array();
	if (!isset($sha[$id_auteur . $pass . $alea])) {
		if (!isset($GLOBALS['meta'][$alea]) and _request('exec') !== 'install') {
		if (!isset($GLOBALS['meta'][$alea])) {
			if (!$exec = _request('exec') or !autoriser_sans_cookie($exec)){
				include_spip('inc/acces');
				charger_aleas();
				if (empty($GLOBALS['meta'][$alea])){
@@ -194,6 +195,7 @@ function _action_auteur($action, $id_auteur, $pass, $alea) {
					exit;
				}
			}
		}
		include_spip('auth/sha256.inc');
		$sha[$id_auteur . $pass . $alea] = spip_sha256($id_auteur . $pass . @$GLOBALS['meta'][$alea]);
	}
+13 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1644,14 +1644,24 @@ function find_all_in_path($dir, $pattern, $recurs = false) {

/**
 * Prédicat sur les scripts de ecrire qui n'authentifient pas par cookie
 * et beneficient d'une exception
 *
 * @param string $nom
 * @param bool $strict
 * @return bool
 */
function autoriser_sans_cookie($nom) {
function autoriser_sans_cookie($nom, $strict = false) {
	static $autsanscookie = array('install', 'base_repair');
	$nom = preg_replace('/.php[3]?$/', '', basename($nom));

	return in_array($nom, $autsanscookie);
	if (in_array($nom, $autsanscookie)) {
		if (test_espace_prive()){
			include_spip('base/connect_sql');
			if (!$strict or !spip_connect()){
				return true;
			}
		}
	}
	return false;
}

/**
+17 −15
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -41,7 +41,7 @@ $reinstall = (!is_null(_request('reinstall'))) ? _request('reinstall') : ($exec
// Les scripts d'insallation n'authentifient pas, forcement,
// alors il faut blinder les variables d'URL
//
if (autoriser_sans_cookie($exec)) {
if (autoriser_sans_cookie($exec, false)) {
	if (!isset($reinstall)) {
		$reinstall = 'non';
	}
@@ -64,6 +64,7 @@ $forcer_lang = true;


if (_request('action') or _request('var_ajax') or _request('formulaire_action')) {
	if (!autoriser_sans_cookie($exec)){
		// Charger l'aiguilleur qui va mettre sur la bonne voie les traitements derogatoires
		include_spip('public/aiguiller');
		if (
@@ -79,6 +80,7 @@ if (_request('action') or _request('var_ajax') or _request('formulaire_action'))
			exit;
		} // le hit est fini !
	}
}
// securiser les redirect du back-office
if (_request('redirect')) {
	if (!function_exists('securiser_redirect_action')){