[SPIP Zone] CVT Upload et base64

Hello,

la fonction _image_reduire_base64($img, $taille) semble ne pas marcher
(voir https://screenshots.firefox.com/vZn3BW4XsxmH84m2/localhost)

Cela produit la même chose sur Firefox et Safari (pas testé sur Chrome)
Une idée ?

P

Le 15/08/2018 à 16:34, peetdu a écrit :

la fonction _image_reduire_base64($img, $taille) semble ne pas marcher
(voir Take screenshots in Firefox | Firefox Help)

Cela produit la même chose sur Firefox et Safari (pas testé sur Chrome)
Une idée ?

Yop,

(c) chez moi ça marche :slight_smile:

--
nicod_

Yipi,

(c) chez moi ça marche :slight_smile:

okay, mon problème est que j'utilisais CVT Upload
1- dans l'espace privé ;
2- dans un formulaire CVT d'objet éditorial.

Et mon <img… /> et du coup encapsulé dans un <code class="echapper-js">mon code</code>

En ajoutant "$filtrer_javascript = 1;" dans le fichier mes_options.php, ça marche. Pas sûr cependant que ce soit la meilleur solution ?

Le 16/08/2018 à 09:56, peetdu a écrit :

okay, mon problème est que j'utilisais CVT Upload
1- dans l'espace privé ;
2- dans un formulaire CVT d'objet éditorial.

En fait que faudait-il modifier dans CVT Upload pour que ce cas d'usage soit pris en compte ?

En fait que faudait-il modifier dans CVT Upload pour que ce cas d'usage soit pris en compte ?

C'est la fonction sale qu'il faut modifier , ou utiliser htmlpurifier avec une liste blanche spécifique a ton projet…

j'ai fait ça sur le plugin lazysize pour que les images qui sont lazyloader soit visible dans l'espace privé et la preview des champs texte

--
Bonne journée
Arnaud B. (Mist. GraphX)

Le 17/08/2018 à 09:16, Mist. GraphX a écrit :

En fait que faudait-il modifier dans CVT Upload pour que ce cas d'usage soit pris en compte ?

ou utiliser htmlpurifier avec une liste blanche spécifique a ton projet…

J'ai installé htmlpurifier, mais ça ne change rien.
Pas trouvé non plus comment définir/modifier une liste blanche.

J'ai l'impression surtout que j'ai bien trouvé avec "$filtrer_javascript = 1;" le seul moyen de déroger au problème sans surcharger sauvagement SPIP. Mais ça me semble dangereux (?).

La question que je me pose c'est : a t-on vraiment besoin d'encoder en base64 ces images temporaires ? C'est pour un gain en perf c'est ça ?

merci Arnaud pour tes pistes…
Cheers
P

Le 17/08/2018 à 11:03, peetdu a écrit :

La question que je me pose c'est : a t-on vraiment besoin d'encoder en base64 ces images temporaires ? C'est pour un gain en perf c'est ça ?

Non, c'est pour une question de sécurité/confidentialité.

Je n'ai plus exactement le mécanisme en tête mais c'est Maieul qui avait ajouté ça pendant la dernière SPIP party pendant qu'on finalisait CVT upload, sur les recommandations de Marcimat.

Ceci dit, CVT upload fonctionne aussi dans le privé chez moi, dans les CVT d'obets notamment.

--
nicod_

Yop Nicod,

La question que je me pose c'est : a t-on vraiment besoin d'encoder en base64 ces images temporaires ? C'est pour un gain en perf c'est ça ?

Non, c'est pour une question de sécurité/confidentialité.

Ah bon ? Pourquoi sécurité ?
Ce que j'ai compris, c'est que dans notre cas, cela permet (aussi) de diminuer le nombre de requête http (donc gain en perf).

"It's only useful for very tiny images. Base64 encoded files are larger than the original. The advantage lies in not having to open another connection and make a HTTP request to the server for the image. This benefit is lost very quickly so there's only an advantage for large numbers of very tiny individual images."

Ceci dit, CVT upload fonctionne aussi dans le privé chez moi, dans les CVT d'obets notamment.

euh...on est bien d'accord : la fonction _image_reduire_base64($img, $taille) n'est appelée que si :
1- on a demandé à uploader une image;
2 une erreur se produit dans le CVT (champ obligatoire non rempli par exemple).
Alors les images en instances d'être uploadées sont renvoyées sous forme d'une vignette avec encodage base64.

Et là, à moins d'avoir déclaré la variable "$filtrer_javascript = 1;" j'ai chez moi un gros paté de code en base64 au lieu d'une jolie vignette.

Est-ce que tu reproduits ?

Le 17/08/2018 à 13:07, nicod_ a écrit :

Le 17/08/2018 à 11:03, peetdu a écrit :

La question que je me pose c'est : a t-on vraiment besoin d'encoder en base64 ces images temporaires ? C'est pour un gain en perf c'est ça ?

Non, c'est pour une question de sécurité/confidentialité.

Je n'ai plus exactement le mécanisme en tête mais c'est Maieul qui avait ajouté ça pendant la dernière SPIP party pendant qu'on finalisait CVT upload, sur les recommandations de Marcimat.

Ceci dit, CVT upload fonctionne aussi dans le privé chez moi, dans les CVT d'obets notamment.

Le principe est que si on donne une vignette dans local, comme celui-ci est potentiellement visible par tous (en cas .htacess non fonctionnel), cela permettrait à des gens d'accéder à des vignette d'un formulaire cvt-upload alors qu'on ne peut savoir a priori si ces vignettes sont ou non publiques.

Le 20/08/2018 à 20:10, Maïeul a écrit :

La question que je me pose c'est : a t-on vraiment besoin d'encoder en base64 ces images temporaires ? C'est pour un gain en perf c'est ça ?

Non, c'est pour une question de sécurité/confidentialité.

Connexion · GitLab
Connexion · GitLab

Le principe est que si on donne une vignette dans local, comme celui-ci est potentiellement visible par tous (en cas .htacess non fonctionnel), cela permettrait à des gens d'accéder à des vignette d'un formulaire cvt-upload alors qu'on ne peut savoir a priori si ces vignettes sont ou non publiques.

Ok. Merci pour ces explications.

Le 17/08/2018 à 13:07, nicod_ a écrit :

Ceci dit, CVT upload fonctionne aussi dans le privé chez moi, dans les CVT d'obets notamment.

Bon, il y avait quand même un petit soucis corrigé par Connexion · GitLab