spip/ecrire | 19 commits
Par Cerdic, le 19 août 2026 à 20h55min :
feat: une balise #REQUEST_OU_ENV pour accéder au #ENV si fournit explicitement et sinon au #REQUEST
Modifié
public/balises.php
public/fonctions.php
==============================
Par Cerdic, le 19 août 2026 à 20h49min :
refactor: utiliser une fonction nommee pour sanitizer le contexte
Modifié
inc/utils.php
public/assembler.php
==============================
Par Cerdic, le 19 août 2026 à 20h10min :
fix: #REQUEST*{x} ne laisse jamais passer les scripts, quel que soit le réglage par défaut de SPIP
Seule #REQUEST**{x} laisse tout passer, à utiliser avec extrême prudence donc
Modifié
public/balises.php
==============================
Par Cerdic, le 19 août 2026 à 15h43min :
fix: #REQUEST{x} renvoie null si x n’est fournie ni pas $_GET ni par $_POST
Permet de tester [(#REQUEST{x}|is_null|non)... faire un truc avec la valeur x envoyee]
Modifié
public/fonctions.php
==============================
Par Cerdic, le 19 août 2026 à 14h58min :
feat: une balise #REQUEST pour accéder aux valeurs postées.
Pour une valeur envoyée en GET ou en POST
#REQUEST{x}n’est disponible que dans le squelette de premier niveau ou dans une inclusion avec{env}sinon elle renverra du vide#REQUEST{x}renvoie la valeur avec entites filtrées (< en <, & en &…)#REQUEST*{x}renvoie la valeur brute (mais qui passe dans interdire_scripts)#REQUEST**{x}renvoie la valeur brute sans aucune sécurité
Dans tous les cas #ENV{x} renverra une valeur sanitizée et ne permettra jamais d’avoir la valeur envoyée intacte.
Si on ne s’attends pas à avoir du html dans la variable envoyée, alors il est bien de continuer à utiliser #ENV{x} pour ne pas prendre de risque.
Modifié
public/balises.php
public/fonctions.php
==============================
Par Cerdic, le 19 août 2026 à 14h58min :
fix: les __request sont stockées dans $Pile[request] et transmises lors des inclusions qui ont un {env}
Modifié
public/balises.php
public/compiler.php
==============================
Par Cerdic, le 19 août 2026 à 14h55min :
refactor: calcul du contexte, sanitizer tout ce qui va dans ENV
Quand on calcule le contexte, les valeurs qui seront dans #ENV sont sanitizées pour ne jamais avoir de valeur malicieuse dans #ENV (y compris les clés des tableaux)
Les valeurs brutes sont urlencodees et stockées dans une cle __request pour être lue via une balise #REQUEST dédiée
Refs: Connexion · GitLab
refactor: calcul du contexte
Modifié
public/assembler.php
==============================
Par Cerdic, le 19 août 2026 à 14h55min :
refactor: spip_sanitize_value_recursive peut optionnellement sanitizer les clés
Modifié
inc/utils.php
==============================
Par marcimat, le 18 août 2026 à 16h37min :
Merge branch ‹ refactor_attribut_url › into ‹ 4.4 ›
refactor: simplifier et déplacer attribut_url()
See merge request spip/ecrire!299
Modifié
inc/filtres.php
inc/filtres_mini.php
inc/headers.php
Détails : https://git.spip.net/spip/ecrire/-/commit/2fd5a8eaddcd6a2beae9d624fa54d1408224a522
==============================
Par Cerdic, le 18 août 2026 à 16h12min :
refactor: déplacer attribut_url dans inc/filtres_mini
Modifié
inc/filtres.php
inc/filtres_mini.php
inc/headers.php
Détails : https://git.spip.net/spip/ecrire/-/commit/3737820265d2568b76732a2fe7c5d352a00d5ab3
==============================
Par Cerdic, le 18 août 2026 à 16h12min :
refactor: ne pas utiliser entites_html() dans attribut_url()
On a pas de balises html dans les URLs, donc pas nécessaire de faire echappe_retour(echappe_html()) ni d’inclure inc/texte.php
Modifié
inc/filtres.php
Détails : https://git.spip.net/spip/ecrire/-/commit/6ea0f71b8ae4c6f8ebe3a063c005921a63355a3c
==============================
Par Matthieu Marcillaud, le 18 août 2026 à 16h11min :
fix: compléter safe_export_env() pour traiter aussi les clés de tableaux
Refs: !312
(cherry picked from commit 1e287cd1caa75c0df0f09b296f55f8bd52354b7b)
Modifié
public/fonctions.php
==============================
Par marcimat, le 18 août 2026 à 15h54min :
Merge branch ‹ fix_strftime_deprecated › into ‹ 4.4 ›
fix: utiliser date() pour émuler DATE_FORMAT en sqlite
See merge request spip/ecrire!318
Modifié
req/sqlite_fonctions.php
Détails : Merge branch 'fix_strftime_deprecated' into '4.4' (fdadd06e) · Validations · spip / ecrire · GitLab
==============================
Par Cerdic, le 18 août 2026 à 15h52min :
fix: utiliser date() pour émuler DATE_FORMAT() en sqlite
strftime() est déprécié depuis PHP 8.1
Refs: spip/spip#5802
Modifié
req/sqlite_fonctions.php
==============================
Par marcimat, le 18 août 2026 à 15h39min :
Merge branch ‹ fix_media_5040 › into ‹ 4.4 ›
fix: faire fonctionner « titre REGEXP ‹ ^$ › » en sqlite
See merge request spip/ecrire!319
Modifié
req/sqlite_fonctions.php
Détails : Merge branch 'fix_media_5040' into '4.4' (4f8e073b) · Validations · spip / ecrire · GitLab
==============================
Par Cerdic, le 18 août 2026 à 15h39min :
fix: faire fonctionner « titre REGEXP ‹ ^$ › » en sqlite
Pour des raisons de perf, le cas champ vide est optimisé lors de la traduction de REGEXP en preg_match, mais dans certain cas cela est une erreur
On teste spécifiquement la regepxp ‹ ^$ › qui sert à trouver les champs vides
Modifié
req/sqlite_fonctions.php
==============================
Par marcimat, le 18 août 2026 à 15h34min :
Merge branch ‹ fix_issue_167 › into ‹ 4.4 ›
Ne pas capturer des headers en dehors de cas prévus
See merge request spip/ecrire!317
Modifié
public/composer.php
Détails : Merge branch 'fix_issue_167' into '4.4' (7281abd1) · Validations · spip / ecrire · GitLab
==============================
Par Cerdic, le 18 août 2026 à 15h30min :
fix: Ne pas capturer des headers en dehors de cas prévus (issus de labalise HTTP_HEADER notamment)
Le modificateur m était en trop
On veut vraiment que la preg match l’ensemble du code, et pas juste une ligne
Fix: #167
Modifié
public/composer.php
==============================
Par Matthieu Marcillaud, le 18 août 2026 à 15h29min :
fix: Autoriser la création du password d’un nouvel auteur
Refs: #165
(cherry picked from commit 3061db9604e9706c5e1d7aab77b09a5f41abadaf)
Modifié
action/inscrire_auteur.php