diff --git a/attachments_component/admin/config.xml b/attachments_component/admin/config.xml index ddf962a8..99be6710 100644 --- a/attachments_component/admin/config.xml +++ b/attachments_component/admin/config.xml @@ -191,6 +191,12 @@ label="ATTACH_FORBIDDEN_FILENAME_CHARACTERS" size="40" description="ATTACH_FORBIDDEN_FILENAME_CHARACTERS_DESCRIPTION"> + + + + diff --git a/attachments_component/admin/language/el-GR/el-GR.com_attachments.ini b/attachments_component/admin/language/el-GR/el-GR.com_attachments.ini index 7f3868a7..d7e099cf 100644 --- a/attachments_component/admin/language/el-GR/el-GR.com_attachments.ini +++ b/attachments_component/admin/language/el-GR/el-GR.com_attachments.ini @@ -278,6 +278,8 @@ ATTACH_RELATIVE_URL_TOOLTIP="Επιλέξτε αυτό το κουτί για ν ATTACH_RESET="Επαναφορά" ATTACH_RESET_ORDER="Επαναφορά Ταξινόμησης" ATTACH_SAVE="Αποθήκευση" +ATTACH_SANITIZE_FILENAME="Εκκαθάριση Ονόματος Αρχείου" +ATTACH_SANITIZE_FILENAME_DESCRIPTION="Εκκαθάριση Ονόματος Αρχείου : αφαιρεί τους ειδικούς χαρακτήρες" ATTACH_SECURE_ATTACHMENT_DOWNLOADS="Ασφαλείς λήψεις συνημμένων" ATTACH_SECURE_ATTACHMENT_DOWNLOADS_DESCRIPTION="Χρησιμοποιήστε ασφαλείς λήψεις συνημμένων. Όταν χρησιμοποιούνται ασφαλείς λήψεις, μόνο οι χρήστες με κατάλληλα δικαιώματα θα μπορούν να κατεβάσουν τα συνημμένα. Σημείωση: Σε 'ασφαλή' λειτουργία, η λίστα συνημμένων δεν εμφανίζεται όταν ο χρήστης δεν έχει συνδεθεί (εκτός αν η επιλογή 'Εμφάνιση συνημμένων σε ασφαλή κατάσταση' έχει οριστεί σε 'Ναι')." ATTACH_SELECT_ENTITY_S="Επιλέξτε %s" diff --git a/attachments_component/admin/language/en-GB/en-GB.com_attachments.ini b/attachments_component/admin/language/en-GB/en-GB.com_attachments.ini index df354ec5..a70cb97d 100644 --- a/attachments_component/admin/language/en-GB/en-GB.com_attachments.ini +++ b/attachments_component/admin/language/en-GB/en-GB.com_attachments.ini @@ -278,6 +278,8 @@ ATTACH_RELATIVE_URL_TOOLTIP="Check this box to enter a URL relative to this Joom ATTACH_RESET="Reset" ATTACH_RESET_ORDER="Reset Order" ATTACH_SAVE="Save" +ATTACH_SANITIZE_FILENAME="Sanitize FileName" +ATTACH_SANITIZE_FILENAME_DESCRIPTION="Sanitize FileName : removes special characters " ATTACH_SECURE_ATTACHMENT_DOWNLOADS="Secure attachment downloads" ATTACH_SECURE_ATTACHMENT_DOWNLOADS_DESCRIPTION="Use secure attachment downloads. When secure downloads are used, only users with appropriate permissions will be able to download the attachments. Note: In 'secure' mode, the attachments list is not displayed when the user is not logged in (unless the 'List attachments in secure mode' option is set to 'True')." ATTACH_SELECT_ENTITY_S="Select %s" diff --git a/attachments_component/admin/language/fr-FR/fr-FR.com_attachments.ini b/attachments_component/admin/language/fr-FR/fr-FR.com_attachments.ini index 217fa4f2..0206dead 100644 --- a/attachments_component/admin/language/fr-FR/fr-FR.com_attachments.ini +++ b/attachments_component/admin/language/fr-FR/fr-FR.com_attachments.ini @@ -277,6 +277,8 @@ ATTACH_RELATIVE_URL_TOOLTIP="Cochez cette case pour entrer une adresse relative ATTACH_RESET="Réinitialiser" ATTACH_RESET_ORDER="Réinitialiser l'ordre" ATTACH_SAVE="Enregistrer" +ATTACH_SANITIZE_FILENAME="Nettoie les noms des fichiers" +ATTACH_SANITIZE_FILENAME_DESCRIPTION="Nettoie les noms des fichiers : enlève les caractèrer speciaux" ATTACH_SECURE_ATTACHMENT_DOWNLOADS="Téléchargement de pièces jointes sécurisé" ATTACH_SECURE_ATTACHMENT_DOWNLOADS_DESCRIPTION="Utilise le téléchargement de pièces jointes sécurisé. Quand les téléchargements sécurisés sont utilisés, seuls les utilisateurs avec les permissions appropriées peuvent télécharger les pièces jointes. Note: Dans le mode «sécurisé», la liste des pièces jointes n'est pas affichée quand l'utilisateur n'est pas enregistré (A moins que l'option 'Liste de pièces jointes sécurisé' soit placée sur 'Oui')." ATTACH_SELECT_ENTITY_S="Selectionnez %s" diff --git a/attachments_component/site/src/Helper/AttachmentsHelper.php b/attachments_component/site/src/Helper/AttachmentsHelper.php index 84467fb5..b723ec8a 100644 --- a/attachments_component/site/src/Helper/AttachmentsHelper.php +++ b/attachments_component/site/src/Helper/AttachmentsHelper.php @@ -436,10 +436,14 @@ public static function upload_file(&$attachment, &$parent, $attachment_id=false, } // Get the new filename - // (Note: The following replacement is necessary to allow - // single quotes in filenames to work correctly.) - // Trim of any trailing period (to avoid exploits) - $filename = rtrim(StringHelper::str_ireplace("\'", "'", $_FILES['upload']['name']), '.'); + // Make filename safe + $filename_safe = $params->get('sanitize_filename_characters', false); + if ( $filename_safe ) { + $filename = File::makeSafe(strtolower($_FILES['upload']['name'])); + } else { + // Trim of any trailing period (to avoid exploits) + $filename = rtrim(StringHelper::str_ireplace("\'", "'", $_FILES['upload']['name']), '.'); + } $ftype = $_FILES['upload']['type']; // Check the file size