Projet

Général

Profil

Bug #69958

Il n'est plus possible d'imprimer les fichiers attachés dans firefox depuis l'ajout d'un entête Content-Security-Policy

Ajouté par Benjamin Dauvergne il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
06 octobre 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Cette modification suite au ticket #67872 empêche le chargement d'une image dans la boite de dialogue d'impression (pas de prévisualisation et impression vide) :

commit 69ab751d323fac6ee0db1b01956724767617c568
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Aug 2 11:09:43 2022 +0200

    misc: do not transform, and restrict, uploaded HTML files (#67872)

diff --git a/wcs/forms/common.py b/wcs/forms/common.py
index 9bb14cd3c..8e0bf2580 100644
--- a/wcs/forms/common.py
+++ b/wcs/forms/common.py
@@ -94,6 +94,11 @@ class FileDirectory(Directory):
             else:
                 raise errors.TraversalError()

+        # force potential HTML upload to be used as-is (not decorated with theme)
+        # and with minimal permissions
+        response.filter = {}
+        response.set_header('Content-Security-Policy', 'default-src \'none\';')
+
         if file.content_type:
             response.set_content_type(file.content_type)
         else:

J'imagine qu'un Content-Security-Policy: default-src 'self' ou bien 'https://la-meme-url/' marcherait peut-être...


Fichiers


Demandes liées

Lié à w.c.s. - Bug #67872: traitement des fichiers HTML uploadés à travers un champ fichierFermé02 août 2022

Actions

Révisions associées

Révision 2f7db76f (diff)
Ajouté par Benjamin Dauvergne il y a plus d'un an

misc: add img-src CSP to fix printing on Firefox (#69958)

On firefox the CSP is applied to the printing dialog box of the browser, if it's
too restrictive it cannot print an image file.

Historique

#2

Mis à jour par Benjamin Dauvergne il y a plus d'un an

  • Lié à Bug #67872: traitement des fichiers HTML uploadés à travers un champ fichier ajouté
#3

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Plutôt ajouter, img-src '<url de l'image>' ou alors img-src 'self'.

#4

Mis à jour par Benjamin Dauvergne il y a plus d'un an

  • Assigné à mis à Benjamin Dauvergne
#5

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Il faudrait vérifier que ça permet d'imprimer des PDF aussi...

#6

Mis à jour par Frédéric Péters il y a plus d'un an

  • Statut changé de Solution proposée à En cours

Il faudrait vérifier que ça permet d'imprimer des PDF aussi...

(en attente de cette vérification, alors ?)

#7

Mis à jour par Frédéric Péters il y a plus d'un an

En fait non, vraiment, pour les fichiers HTML téléchargés on voudrait appliquer la pire politique, pas même leur permettre d'image.

De ce que je lis ici là il y a Firefox qui se marche dessus et applique la politique d'un fichier téléchargé à la page qui l'intègre.

Il me semble y avoir davantage à comprendre.

#8

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Ok j'ai ouvert un ticket sur bugzilla.

https://bugzilla.mozilla.org/show_bug.cgi?id=1794395

#9

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Benjamin Dauvergne a écrit :

Ok j'ai ouvert un ticket sur bugzilla.

https://bugzilla.mozilla.org/show_bug.cgi?id=1794395

J'ai testé dans chrome, il n'y pas ce bug, en attendant les agents à Tours ne peuvent plus imprimer les pièces jointes (on peut faire passer ça pour une mesure écolo à la rigueur) :/

#10

Mis à jour par Benjamin Dauvergne il y a plus d'un an

  • Assigné à Benjamin Dauvergne supprimé
#11

Mis à jour par Frédéric Péters il y a plus d'un an

De manière transitoire, la Content-Security-Policy pourrait être posée uniquement sur ce qui est text/html, voire à l'inverse explicitement pas posée sur les image/*.

#12

Mis à jour par Benjamin Dauvergne il y a plus d'un an

L'impression de PDF n'est pas bloquée par ce souci sous firefox.

J'ai relu le ticket #67872, et un truc qui n'est pas pris en compte c'est que pour tempfile il n'y pas de travail sur content-disposition alors que pour la vue des fichiers attachés il y en a un qui fait qu'il est quasiment impossible d'afficher un fichier HTML (mais on pourrait imaginer un fichier bien foutu qui trompe libmagic de notre coté mais qui soit reconnu comme un fichier HTML par le navigateur, qui sait) et qui rend le response.filter = {} assez inutile dans ce cas. Je verrai bien un content-disposition: attachment sur la vue tempfile, ça me parait plus logique. PS: Et en fait ça n'arrive pas non plus parce que le widget d'upload met un <a download=...> en fait l'audit à la base de tout ça est complètement nul.

Dans tous les cas la CSP encore plus restrictive 'img-src %s;' % get_request().build_absolute_uri() permet l'impression et ne me semble pas permettra de charger une image dans un fichier HTML (à part lui même, mais je ne vois pas bien ce qu'on risque qu'on ne risque pas déjà en chargeant bêtement une image).

#13

Mis à jour par Benjamin Dauvergne il y a plus d'un an

  • Assigné à mis à Benjamin Dauvergne
#15

Mis à jour par Frédéric Péters il y a plus d'un an

  • Tracker changé de Development à Bug
  • Statut changé de Solution proposée à Solution validée

Il y a une suppression de ligne vide dans le premier chunk, tu peux la remettre avant de pousser ?

(je passe en qualification "bug" pour être explicite sur le fait que ça puisse être poussé pour ce cycle).

#16

Mis à jour par Frédéric Péters il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)

Je l'ai envoyé moi-même.

commit 2f7db76ffd197df03bb3bfac365084837e5e3819
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Oct 6 16:03:37 2022 +0200

    misc: add img-src CSP to fix printing on Firefox (#69958)

    On firefox the CSP is applied to the printing dialog box of the browser, if it's
    too restrictive it cannot print an image file.
#17

Mis à jour par Transition automatique il y a plus d'un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#18

Mis à jour par Benjamin Dauvergne il y a plus d'un an

Benjamin Dauvergne a écrit :

Ok j'ai ouvert un ticket sur bugzilla.

https://bugzilla.mozilla.org/show_bug.cgi?id=1794395

Et quelqu'un a réagit mais me demande un lien pour reproduire le souci, https://bugzilla.mozilla.org/show_bug.cgi?id=1794395 ... sont chiants ces dév.

#19

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF