From 13974459a6f895bbfa86104459f10a14833af842 Mon Sep 17 00:00:00 2001 From: "maieul@maieul.net" <> Date: Tue, 27 Dec 2016 18:31:26 +0000 Subject: [PATCH] =?UTF-8?q?faire=20aussi=20un=20test=20de=20non=20lecture?= =?UTF-8?q?=20par=20http=20des=20fichiers=20stock=C3=A9s=20dans=20des=20do?= =?UTF-8?q?ssiers=20de=20timestamp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/formidable_fichiers.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/inc/formidable_fichiers.php b/inc/formidable_fichiers.php index 4f189191..d1bee9f5 100644 --- a/inc/formidable_fichiers.php +++ b/inc/formidable_fichiers.php @@ -138,6 +138,19 @@ function formidable_deplacer_fichier_emplacement_definitif($fichier, $nom, $mime $dossier = sous_repertoire(_DIR_FICHIERS_FORMIDABLE, 'timestamp', false, true); $dossier = sous_repertoire($dossier, $options['timestamp'],false,true); $dossier_champ = sous_repertoire($dossier,$champ,false,true); + // on crée un fichier de test, pour s'assurer 1. Qu'on puisse écrire dans le rep 2. Qu'on ne puisse pas accéder à ce fichier depuis l'exterieur. + $fichier_test = $dossier."test.txt"; + $ecriture_ok = ecrire_fichier($fichier_test, "Ce fichier n'est normalement pas lisible de l'extérieur. Si tel est le cas, il y a un souci de confidentialité.", false); + if ($ecriture_ok == False) { + spip_log("Impossible d'écrire dans $dossier", "formidable"._LOG_ERREUR); + return ''; + } + include_spip('inc/distant'); + $url = url_absolue($fichier_test); + if (recuperer_page ($url)) { // si on peut récuperer la page avec un statut http 200, c'est qu'il y a un problème. recuperer_page() est obsolète en 3.1, mais recuperer_url() n'existe pas en 3.0 + spip_log("$dossier accessible en lecture depuis le web", "formidable"._LOG_CRITIQUE); + return ''; + } } // S'assurer qu'il n'y a pas un fichier du même nom à destination $chemin_final = $dossier_champ.$nom; -- GitLab