From 2762e3066469026c2cad1721b477d26d8eef2e0a Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Tue, 7 Mar 2023 14:52:42 +0100
Subject: [PATCH] =?UTF-8?q?security:=20inclure=20l'=C3=A9cran=20de=20s?=
 =?UTF-8?q?=C3=A9curit=C3=A9=20au=20plus=20t=C3=B4t?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Car il est normalement fait pour être appelé en prepend php,
et du coup on ne charge l'autoloader qu'après.
---
 ecrire/inc_version.php | 59 +++++++++++++++++++++---------------------
 1 file changed, 29 insertions(+), 30 deletions(-)

diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index da6e45a70e..000a2aad6a 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -9,8 +9,6 @@
  *  Ce programme est un logiciel libre distribué sous licence GNU/GPL.     *
 \***************************************************************************/
 
-require_once __DIR__ . '/../vendor/autoload.php';
-
 /**
  * Initialisation de SPIP
  *
@@ -59,28 +57,9 @@ define('_ROOT_CWD', getcwd() . '/');
 /** chemin absolu vers ecrire */
 define('_ROOT_RESTREINT', _ROOT_CWD . _DIR_RESTREINT);
 
-// Icones
-if (!defined('_NOM_IMG_PACK')) {
-	/** Nom du dossier images */
-	define('_NOM_IMG_PACK', 'images/');
-}
-/** le chemin http (relatif) vers les images standard */
-define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
-
-/** le chemin php (absolu) vers les images standard (pour hebergement centralise) */
-define('_ROOT_IMG_PACK', dirname(__DIR__) . '/prive/' . _NOM_IMG_PACK);
-
-if (!defined('_JAVASCRIPT')) {
-	/** Nom du repertoire des  bibliotheques JavaScript */
-	define('_JAVASCRIPT', 'javascript/');
-} // utilisable avec #CHEMIN et find_in_path
-/** le nom du repertoire des  bibliotheques JavaScript du prive */
-define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT));
-
 # Le nom des 4 repertoires modifiables par les scripts lances par httpd
 # Par defaut ces 4 noms seront suffixes par _DIR_RACINE (cf plus bas)
 # mais on peut les mettre ailleurs et changer completement les noms
-
 if (!defined('_NOM_TEMPORAIRES_INACCESSIBLES')) {
 	/** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */
 	define('_NOM_TEMPORAIRES_INACCESSIBLES', 'tmp/');
@@ -98,6 +77,35 @@ if (!defined('_NOM_PERMANENTS_ACCESSIBLES')) {
 	define('_NOM_PERMANENTS_ACCESSIBLES', 'IMG/');
 }
 
+// inclure l'ecran de securite si il n'a pas été inclus en prepend php
+if (
+	!defined('_ECRAN_SECURITE')
+	and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php')
+) {
+	include $f;
+}
+
+// et on peut lancer l'autoloader
+require_once __DIR__ . '/../vendor/autoload.php';
+
+// Icones
+if (!defined('_NOM_IMG_PACK')) {
+	/** Nom du dossier images */
+	define('_NOM_IMG_PACK', 'images/');
+}
+/** le chemin http (relatif) vers les images standard */
+define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
+
+/** le chemin php (absolu) vers les images standard (pour hebergement centralise) */
+define('_ROOT_IMG_PACK', dirname(__DIR__) . '/prive/' . _NOM_IMG_PACK);
+
+if (!defined('_JAVASCRIPT')) {
+	/** Nom du repertoire des  bibliotheques JavaScript */
+	define('_JAVASCRIPT', 'javascript/');
+} // utilisable avec #CHEMIN et find_in_path
+/** le nom du repertoire des  bibliotheques JavaScript du prive */
+define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT));
+
 
 /** Le nom du fichier de personnalisation */
 if (!defined('_NOM_CONFIG')) {
@@ -128,15 +136,6 @@ if (!defined('MODULES_IDIOMES')) {
 // *** Fin des define *** //
 
 
-// inclure l'ecran de securite
-if (
-	!defined('_ECRAN_SECURITE')
-	and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php')
-) {
-	include $f;
-}
-
-
 /*
  * Détecteur de robot d'indexation
  */
-- 
GitLab