Projet

Général

Profil

Bug #7860

Passer les variables de substitution dans cgi.escape

Ajouté par Frédéric Péters il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
16 juillet 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Pour l'utilisation dans le template de page, il ne faudrait pas qu'un utilisateur puisse s'appeler "fred<script>alert('hello world');</script>".


Fichiers

Révisions associées

Révision 692af244 (diff)
Ajouté par Frédéric Péters il y a plus de 8 ans

general: escape substitution variables (#7860)

In templates used for comments and editable texts the substitution is done
on-the-fly by ezt. This is not enabled to the general template as most
variables in there are supposed to be HTML and many sites created on that
assumption. Therefore the substitution is done ahead and limited to context
variables.

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 8 ans

#2

Mis à jour par Thomas Noël il y a plus de 8 ans

c'est pas "full secure" parce qu'on peut imaginer un jour avec une variable genre ["toto","tata"] que ezt affiche. Pour moi c'est ezt qui devrait faire du cgi.escape.

Mais en première approche, c'est certainement déjà très bien, je ack donc.

#3

Mis à jour par Frédéric Péters il y a plus de 8 ans

Voici un autre patch, qui couvre plus de domaines (genre le champ de type commentaire dont le contenu serait <p>Bonjour [session_user_display_name]</p>).

Mais concernant ezt, il y a déjà tout le nécessaire en place pour gérer correctement ça, c'est juste plus verbeux et on ne l'utilise jamais [format "html"][session_user_display_name][end].

#4

Mis à jour par Frédéric Péters il y a plus de 8 ans

  • Fichier 0001-template-escape-substitution-variables-7860.patch ajouté

Un retour vers la première option, l'échappement se fait uniquement pour l'ezt servant de thème. Pour les autres endroits (champ de type commentaire et texte éditable), le templating ezt est configuré pour faire l'échappement lui-même.

Pour assurer une phase de transition pour le thème, on pourrait désactiver l'échappement si la chaine "[format " est trouvée dans l'ezt; ce n'est pas fait parce que la perspective reste la branche django et la suppression d'ezt pour cette partie.

#5

Mis à jour par Frédéric Péters il y a plus de 8 ans

  • Fichier 0001-template-escape-substitution-variables-7860.patch supprimé
#7

Mis à jour par Thomas Noël il y a plus de 8 ans

Ack

#8

Mis à jour par Frédéric Péters il y a plus de 8 ans

  • Statut changé de En cours à Résolu (à déployer)
commit 692af244d4680d69e367c049cc4794563b2f73f7
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Thu Jul 16 11:49:00 2015 +0200

    general: escape substitution variables (#7860)

    In templates used for comments and editable texts the substitution is done
    on-the-fly by ezt.  This is not enabled to the general template as most
    variables in there are supposed to be HTML and many sites created on that
    assumption. Therefore the substitution is done ahead and limited to context
    variables.
#9

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Statut changé de Résolu (à déployer) à Fermé
  • Version cible mis à v1.13.3

Formats disponibles : Atom PDF