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