From 9b8d1487ef067b5bdb2ce7365cc65d0e7ec0fa44 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Tue, 7 Dec 2021 10:45:48 +0100 Subject: [PATCH] Utiliser valider_url_distante() en plus de tester_url_absolue() avant de faire une copie locale sur un document distant (+ on reverifie apres copie_locale que la source est toujours licite et que rien n'a change entre temps) --- action/copier_local.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/action/copier_local.php b/action/copier_local.php index 5715ac93..a0feac6c 100644 --- a/action/copier_local.php +++ b/action/copier_local.php @@ -59,12 +59,13 @@ function action_copier_local_post($id_document) { // si la source est bien un fichier distant // sinon c'est une donnee moisie, on ne fait rien - if (tester_url_absolue($source)) { - include_spip('inc/distant'); // pour 'copie_locale' + include_spip('inc/distant'); + if (tester_url_absolue($source) + and valider_url_distante($source)) { $fichier = copie_locale($source); if ( $fichier - and tester_url_absolue($source) + and valider_url_distante($source) ) { $fichier = _DIR_RACINE . $fichier; $files = []; @@ -86,6 +87,9 @@ function action_copier_local_post($id_document) { return true; } else { spip_log("echec copie locale $source", 'medias' . _LOG_ERREUR); + if ($fichier) { + @unlink(_DIR_RACINE . $fichier); + } } } else { spip_log("echec copie locale $source n'est pas une URL distante", 'medias' . _LOG_ERREUR); -- GitLab