From 39df395ea87401e53aab2cc2b6ff22a0706f192b Mon Sep 17 00:00:00 2001 From: "real3t@gmail.com" <> Date: Thu, 1 Aug 2019 08:58:13 +0000 Subject: [PATCH] =?UTF-8?q?[SoyezCr=C3=A9ateurs]=20S=C3=A9curit=C3=A9=20su?= =?UTF-8?q?r=20les=20tuiles=20et=20correction=20erreur=20sur=20le=20redime?= =?UTF-8?q?nsionnement=20avant=20traitement=20du=20focus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- filtres/images_soyezcreateurs.php | 4 ++-- tuile.html | 39 ++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/filtres/images_soyezcreateurs.php b/filtres/images_soyezcreateurs.php index 550eb600..7739fd6c 100644 --- a/filtres/images_soyezcreateurs.php +++ b/filtres/images_soyezcreateurs.php @@ -22,8 +22,8 @@ function image_focus($img, $largeur, $hauteur, $position = 'center') { } $img = filtrer('image_recadre', $img, $largeur, $hauteur, $position, 'transparent'); } else { - // On commence par réduire à 2 fois la taille finale pour travailler sur de plus petites images - $img = filtrer('image_reduire', $img, $largeur*2, $hauteur*2, $position, 'transparent'); + // On commence par réduire pour travailler sur de plus petites images + $img = filtrer('image_reduire', $img, 3840, 0); $img = filtrer('image_graver', $img); $img = filtrer('image_recadre', $img, "$largeur:$hauteur", '-', 'focus', 'transparent'); $img = filtrer('image_graver', $img); diff --git a/tuile.html b/tuile.html index 07771acb..62cf57f5 100644 --- a/tuile.html +++ b/tuile.html @@ -1,14 +1,25 @@ -<?php -$filename="[(#ENV{logo}|image_focus{#ENV{width},#ENV{height}}|extraire_attribut{src}|supprimer_timestamp)]"; -$filename=preg_replace(',[?].*$,','',$filename); -if (exif_imagetype($filename) > 0) { - $size = getimagesize($filename); - $fp = fopen($filename, "rb"); - if ($size && $fp) { - header("Content-type: {$size['mime']}"); - fpassthru($fp); - exit; - } else { - exit; - } -} \ No newline at end of file +<BOUCLE_Securite(CONDITION) + {si #ENV{width}|>{0}} + {si #ENV{height}|>{0}} + {si #ENV{logo}|mb_strtolower|strncmp{'http',4}|!={0}} + {si #ENV{logo}|exif_imagetype|>{0}} +><?php +/* Sécurité +On a vérifié : +- que largeur et hauteur sont > 0 +- que l'image est locale et pas distante +- que c'est bien une image +On peut faire le traitement +*/ +$filename='[(#ENV{logo}|image_focus{[(#ENV{width}|intval)],[(#ENV{height}|intval)]}|extraire_attribut{src}|supprimer_timestamp|texte_script)]'; +$size = filesize($filename); +$type= image_type_to_mime_type(exif_imagetype($filename)); +$fp = fopen($filename, "rb"); +if ($size && $type && $fp) { + header('Content-type: ' . $type); + header('Content-Length: ' . $size); + fpassthru($fp); + exit; +} +echo 'Alert!'; +?></BOUCLE_Securite>#HTTP_HEADER{Content-Type: image/gif}[(#INCLURE{images/1.gif})]<//B_Securite> -- GitLab