Recent Changes - Search:

En Français

Traduction

Pmwiki.org

En Anglais

Menu de la version anglaise

PmWiki

pmwiki.org

edit SideBar

https://www.jetphotos.com/photographer/598301 https://www.jetphotos.com/photographer/598304 https://www.jetphotos.com/photographer/598305 https://www.jetphotos.com/photographer/598307 https://www.jetphotos.com/photographer/598310 https://www.jetphotos.com/photographer/598312 https://www.jetphotos.com/photographer/598317 https://www.jetphotos.com/photographer/598318 https://www.jetphotos.com/photographer/598320 https://www.jetphotos.com/photographer/598321 https://www.jetphotos.com/photographer/598322 https://www.jetphotos.com/photographer/598324 https://www.jetphotos.com/photographer/598328 https://www.jetphotos.com/photographer/598340 https://www.jetphotos.com/photographer/598341 https://www.jetphotos.com/photographer/598346 https://www.jetphotos.com/photographer/598349 https://www.jetphotos.com/photographer/598357 https://www.jetphotos.com/photographer/598366 https://www.jetphotos.com/photographer/598372 https://www.jetphotos.com/photographer/598374 https://www.jetphotos.com/photographer/598378 https://www.jetphotos.com/photographer/600028 https://www.jetphotos.com/photographer/600031 https://www.jetphotos.com/photographer/600032 https://www.jetphotos.com/photographer/600034 https://www.jetphotos.com/photographer/600036 https://www.jetphotos.com/photographer/600037 https://www.jetphotos.com/photographer/600039 https://www.jetphotos.com/photographer/600041 https://www.jetphotos.com/photographer/600042 https://www.jetphotos.com/photographer/600045 https://www.jetphotos.com/photographer/600046 https://www.jetphotos.com/photographer/600047 https://www.jetphotos.com/photographer/600048 https://www.jetphotos.com/photographer/600050 https://www.jetphotos.com/photographer/600051 https://www.jetphotos.com/photographer/600052 https://www.jetphotos.com/photographer/600053 https://www.jetphotos.com/photographer/600055 https://www.jetphotos.com/photographer/600057 https://www.jetphotos.com/photographer/600641 https://www.jetphotos.com/photographer/600644 https://www.jetphotos.com/photographer/600645 https://www.jetphotos.com/photographer/600646 https://www.jetphotos.com/photographer/602231 https://www.jetphotos.com/photographer/602240 https://www.jetphotos.com/photographer/602244 https://www.jetphotos.com/photographer/602247 https://www.jetphotos.com/photographer/602261 https://www.jetphotos.com/photographer/602265 https://www.jetphotos.com/photographer/602279 https://www.jetphotos.com/photographer/602307 https://www.jetphotos.com/photographer/602315 https://www.jetphotos.com/photographer/602323 https://www.jetphotos.com/photographer/602340 https://www.jetphotos.com/photographer/602346 https://www.jetphotos.com/photographer/602741 https://www.jetphotos.com/photographer/602743 https://www.jetphotos.com/photographer/602744 https://www.jetphotos.com/photographer/602745 https://www.jetphotos.com/photographer/602746 https://www.jetphotos.com/photographer/602748 https://www.jetphotos.com/photographer/602749 https://www.jetphotos.com/photographer/602750 https://www.jetphotos.com/photographer/602757 https://www.jetphotos.com/photographer/602758 https://www.jetphotos.com/photographer/602762 https://www.jetphotos.com/photographer/602763 https://www.jetphotos.com/photographer/602764 https://www.jetphotos.com/photographer/602769 https://www.jetphotos.com/photographer/602770 https://www.jetphotos.com/photographer/602772 https://www.jetphotos.com/photographer/602773 https://www.jetphotos.com/photographer/602774 https://www.jetphotos.com/photographer/602775 https://www.jetphotos.com/photographer/601186 https://www.jetphotos.com/photographer/601188 https://www.jetphotos.com/photographer/601189 https://www.jetphotos.com/photographer/601191 https://www.jetphotos.com/photographer/601192 https://www.jetphotos.com/photographer/601194 https://www.jetphotos.com/photographer/601196 https://www.jetphotos.com/photographer/601197 https://www.jetphotos.com/photographer/601248 https://www.jetphotos.com/photographer/601249 https://www.jetphotos.com/photographer/601250 https://www.jetphotos.com/photographer/601251 https://www.jetphotos.com/photographer/601252 https://www.jetphotos.com/photographer/601254 https://www.jetphotos.com/photographer/601255 https://www.jetphotos.com/photographer/601256 https://www.jetphotos.com/photographer/601258 https://www.jetphotos.com/photographer/601260 https://www.jetphotos.com/photographer/601261 https://www.jetphotos.com/photographer/601263 https://www.jetphotos.com/photographer/601264 https://www.jetphotos.com/photographer/601265 https://www.jetphotos.com/photographer/601266 https://www.jetphotos.com/photographer/601267 https://www.jetphotos.com/photographer/601268 https://www.jetphotos.com/photographer/601269 https://www.jetphotos.com/photographer/601270 https://www.jetphotos.com/photographer/601272 https://www.jetphotos.com/photographer/601273 https://www.jetphotos.com/photographer/602779 https://www.jetphotos.com/photographer/602780 https://www.jetphotos.com/photographer/602781 https://www.jetphotos.com/photographer/602782 https://www.jetphotos.com/photographer/600111 https://www.jetphotos.com/photographer/600112 https://www.jetphotos.com/photographer/600148 https://www.jetphotos.com/photographer/600151 https://www.jetphotos.com/photographer/600155 https://www.jetphotos.com/photographer/600157 https://www.jetphotos.com/photographer/600159 https://www.jetphotos.com/photographer/600161 https://www.jetphotos.com/photographer/600163 https://www.jetphotos.com/photographer/600647 https://www.jetphotos.com/photographer/600648 https://www.jetphotos.com/photographer/600649 https://www.jetphotos.com/photographer/600650 https://www.jetphotos.com/photographer/602889 https://www.jetphotos.com/photographer/602890 https://www.jetphotos.com/photographer/602891 https://www.jetphotos.com/photographer/602895 https://www.jetphotos.com/photographer/602897 https://www.jetphotos.com/photographer/602900 https://www.jetphotos.com/photographer/602904 https://www.jetphotos.com/photographer/602907 https://www.jetphotos.com/photographer/602913 https://www.jetphotos.com/photographer/602916 https://www.jetphotos.com/photographer/602918 https://www.jetphotos.com/photographer/602922 https://www.jetphotos.com/photographer/602923 https://www.jetphotos.com/photographer/602925 https://www.jetphotos.com/photographer/602926 https://www.jetphotos.com/photographer/600534 https://www.jetphotos.com/photographer/600535 https://www.jetphotos.com/photographer/600536 https://www.jetphotos.com/photographer/600538 https://www.jetphotos.com/photographer/600539 https://www.jetphotos.com/photographer/600540 https://www.jetphotos.com/photographer/600542 https://www.jetphotos.com/photographer/600543 https://www.jetphotos.com/photographer/600544 https://www.jetphotos.com/photographer/600547 https://www.jetphotos.com/photographer/600548 https://www.jetphotos.com/photographer/600549 https://www.jetphotos.com/photographer/600550 https://www.jetphotos.com/photographer/600552 https://www.jetphotos.com/photographer/600553 https://www.jetphotos.com/photographer/600555 https://www.jetphotos.com/photographer/600558 https://www.jetphotos.com/photographer/600565 https://www.jetphotos.com/photographer/600566 https://www.jetphotos.com/photographer/600567 https://www.jetphotos.com/photographer/600568 https://www.jetphotos.com/photographer/600571 https://www.jetphotos.com/photographer/600573 https://www.jetphotos.com/photographer/600575 https://www.jetphotos.com/photographer/600576 https://www.jetphotos.com/photographer/600577 https://www.jetphotos.com/photographer/600578 https://www.jetphotos.com/photographer/600666 https://www.jetphotos.com/photographer/600668 https://www.jetphotos.com/photographer/600669 https://www.jetphotos.com/photographer/600670 https://www.jetphotos.com/photographer/602963 https://www.jetphotos.com/photographer/601276 https://www.jetphotos.com/photographer/601280 https://www.jetphotos.com/photographer/601281 https://www.jetphotos.com/photographer/601284 https://www.jetphotos.com/photographer/601285 https://www.jetphotos.com/photographer/601286 https://www.jetphotos.com/photographer/601287 https://www.jetphotos.com/photographer/601288 https://www.jetphotos.com/photographer/601291 https://www.jetphotos.com/photographer/601293 https://www.jetphotos.com/photographer/602776 https://www.jetphotos.com/photographer/602777 https://www.jetphotos.com/photographer/602955 https://www.jetphotos.com/photographer/602956 https://www.jetphotos.com/photographer/602957 https://www.jetphotos.com/photographer/602959 https://www.jetphotos.com/photographer/602960 https://www.jetphotos.com/photographer/602961

Administration des fichiers joints

La traduction de cette page est à vérifier

PmWiki possède une fonction codée dans upload.php qui permet aux utilisateurs de transférer des fichiers sur le serveur wiki à partir d'un navigateur. Ces fichiers peuvent aisément être rendus accessibles en utilisant un code dans les pages wiki. Cette page décrit comment mettre en place et configurer les transferts de fichiers.

Quelques notes à propos de sécurité.

1. Garder à l'esprit que permettre aux utilisateurs (anonymement !) de télécharger des fichiers sur votre serveur web entraîne un certain nombre de risques. Le script upload.php a été conçu pour minimiser les risques, mais les administrateurs du Wiki devraient être conscients que le potentiel de vulnérabilités existe, et qu'une mauvaise configuration de l'utilitaire de téléchargement peut aboutir à des conséquences indésirables.

2. Par défaut, les utilisateurs autorisés peuvent écraser les fichiers téléchargés auparavant, sans possibilité de restaurer la version précédente de ces fichiers. Si vous ne voulez pas permettre aux utilisateurs d'écraser les fichiers déjà transférés, ajoutez la ligne suivante dans votre config.php:

    $EnableUploadOverwrite = 0;

Base de l'installation

Le script upload.php est automatiquement inclus depuis le fichier stdconfig.php si la variable $EnableUpload est activée dans config.php. De plus, dans config.php on peut configurer les variables $UploadDir et $UploadUrlFmt pour préciser le dossier où les fichiers devraient être stockés, et l'URL qui peut être utilisée pour accéder à ce dossier. Par défaut, $UploadDir et $UploadUrlFmt suppose que les fichiers seront enregistrés dans un dossier nommé uploads situé dans le répertoire courant (usuellement celui qui contient pmwiki.php). De plus, config.php devrait aussi contenir le mot de passe par défaut pour tout téléchargement (voir Administration des mots de passe).

Aussi, un fichier config.php de base paramétré pour le téléchargement devrait ressembler à ça:

    <?php
      $EnableUpload = 1;
      $UploadDir = "/home/john/public_html/uploads";
      $UploadUrlFmt = "http://www.john.com/~john/uploads";
      $DefaultPasswords['upload'] = crypt('secret');
      ## options de configuration additionnelles ici...
    ?>

Pour que les transferts fonctionnent correctement, le dossier désigné par $UploadDir doit être accessible en écriture par le processus du serveur web, et il doit être situé à un endroit publiquement accessible à partir du web (par ex., dans un sous-dossier de public_html). L'administrateur du Wiki peut soit créer ce dossier manuellement, ou soit laisser à Pmwiki le soin de le créer lorsque celui-ci est exécuté avec l'option de téléchargement activée ($EnableUpload = 1 dans config.php). Pour que PmWiki puisse créer le dossier, (1) changez les permissions du dossier parent à 2777, (2) lancer PmWiki avec la fonctionnalité de téléchargement activée, (3) vérifiez que le dossier upload est créé, et (4) rétablissez les permissions du dossier parent à leur valeur initiale (755 en général est une valeur sûre).

Par exemple, pour que le dossier upload soit installé dans "/home/john/public_html/uploads", il faudrait faire "chmod 2777 /home/john/public_html", lancer pmwiki.php, s'assurer que le dossier upload soit bien créé ("ls /home/john/public_html"), et rétablir les permissions normales du dossier parent ("chmod 755 /home/john/public_html").

Une fois les transferts de fichiers mis en route, les utilisateurs peuvent accéder au formulaire des téléchargements en ajoutant "?action=upload" à la fin d'une URL normale de PmWiki. Un mot de passe pour effectuer le transfert sera alors demandé aux utilisateurs de la même manière quand d'autres pages requièrent un mot de passe pour d'autres permissions (voir Mots de passe et Administration des mots de passe pour savoir comment établir des mots de passe sur des pages, des groupes, ou sur le site globalement).

Une autre façon d'accéder au formulaire de téléchargement est d'insérer le code "Attach:filename.ext" dans une page existante, où filename.ext est le nom du fichier à transférer. Quand la page est affichée, un '?-lien' est ajouté à la fin de l'attachement et envoie l'auteur à la page des téléchargements.

Par défaut, PmWiki organise les fichier téléchargés dans des sous-dossiers séparés pour chaque groupe. Ceci peut être changer en modifiant la variable $UploadPrefixFmt.

Restrictions sur les fichiers téléchargés

Le scripte upload.php effectue un certain nombre de vérifications sur un fichier téléchargé avant de l'enregistrer dans le dossier upload. Ces vérifications sont décrites ci-dessous.

noms de fichier - le nom pour un fichier téléchargé peut être composé de lettres, de chiffres, de soulignés (underscore), de traits d'union et de points et il doit commencer et se terminer par une lettre ou un chiffre.

extension de fichier - seuls les fichiers avec des extensions volontairement approuvées[1] telles que ".gif", ".jpg", ".doc", etc. sont autorisés à être transférer sur le serveur web. Ceci est d'une importance capitale pour la sécurité du serveur, car celui-ci pourrait essayer d'exécuter ou de traiter spécifiquement des fichiers avec de extensions comme ".php", ".cgi", etc.

taille des fichiers - Par défaut upload.php limite tous les téléchargements à 50K de part la valeur spécifiée dans la variable $UploadMaxSize. Aussi pour pousser cette limite de tous les transferts à 100K, spécifiez simplement dans local/config.php

    $UploadMaxSize = 100000; 

Cependant, upload.php permet de préciser la taille maximum des fichiers pour chaque type de téléchargement. Ainsi, un administrateur peut restreindre les ".gif" et les ".jpeg" à 20K, les ".doc" à 200K, et tous les autres à la taille indiquée par $UploadMaxSize. Le tableau de variables $UploadExtSize est utilisé pour déterminer quelles sont les extensions valides et quelle est la taille maximum (en octets) pour chaque type de fichier. Par exemple:

    $UploadExtSize['gif'] = 20000;      # limite les fichiers .gif à 20K

Paraméter une entrée à zéro désactive complètement le téléchargement d'un type de fichier:

    $UploadExtSize['zip'] = 0;          # interdit le transfert des fichiers .zip

Un autre tableau de variables appelé $UploadExts est utilisé pour remplir $UploadExtSize avec les extensions qui devraient être limitées à la valeur d'$UploadMaxSize. Par défaut, $UploadExts contient un certain nombre d'extensions de fichier populaires (et sûrs), mais cela peut être changé par un administrateur qui voudrait limiter sévèrement les téléchargements par types. Par exemple:

    $UploadExts = array('gif','jpeg','jpg','png','ppt'); // cette ligne n'aura aucun effet de restriction
    $UploadMaxSize = 20000;
    $UploadExtSize['ppt'] = 150000;
    $UploadExtSize['doc'] = 150000;

defini dans local/config.php autorise seulement les fichiers GIF, JPEG et PNG jusqu'à 20K, les fichers PowerPoint et Word jusqu'à 150K, et interdit tous les autres types.

Pour interdire une extension autorisée par défaut[2], il faut remplir la variable $UploadBlacklist, par exemple :

    $UploadBlacklist = array ('.bmp', '.cgi', '.exe', '.fla', '.hqx','.htm','.swf');

Deux autres facteurs sont impliqués dans l'affection de la limite de taille des fichiers transférés. Dans Apache 2.0, la directive LimitRequestBody contrôle la taille maximum de tout ce qui est posté (les téléchargments inclus). Initialement dans Apache, cette taille est illimitée. Pourtant, certaines distributions Linux incluant Red Hat fixent cette limite à 512K aussi il peut être nécessaire de la changer ou de l'augmenter. Pour ce faire il suffit d'éditer le fichier config.php localisé dans votre dossier de configuration d'Apache (la plupart du temp dans /etc/httpd/conf.d).

PHP lui même possède deux limites sur les fichiers téléchargés. La première est le paramètre de taille maxi d'un fichier transféré (upload_max_size), fixé à 2M par défaut. Le second est la taille maxi d'un post (post_max_size), fixé à 6M par défaut.

Avec les variables en jeu--taille maximum de transfert de PmWiki, la limite de taille des requêtes d'Apache, et les paramètres de taille de fichier propre à PHP, la taille maximum autorisée sera la plus petite de ces trois paramètres.

Autres notes

  • Notez que l'accès en lecture aux fichiers transférés n'est contrôlé par aucune des permissions de page ou de groupe--les fichiers transférés sont accessibles même si les pages sont protégées en lecture par un mot de passe.

Question La variable $UploadExts = array('gif','jpeg','jpg','png','ppt'); ne marche pas. Quelqu'un peut-il m'aider?
Reponse : La fonction SDVA() utilisé pour remplir $UploadExts dans le script upload.php rajoutera toutes les extensions prévues par défaut qui n'auront pas été déjà mentionnée dans le fichier de config.php.
On peut au contraire ajouter des extensions à autoriser qui ne le serait pas par défaut en faisant :
$UploadExts = array('.monExtensionARajouter' => 'mime_type_appropie');


<< BackupAndRestore? | Index de la documentation | Sécurité >>

UpdateMe


Traduction de PmWiki.UploadsAdmin Page originale sur PmWikiFr.UploadsAdmin - Backlinks
Dernières modifications:
PmWikiFr.UploadsAdmin: December 23, 2021, at 06:48 AM
PmWiki.UploadsAdmin: February 27, 2023, at 12:34 PM

Edit - History - Print - Recent Changes - Search
Page last modified on December 23, 2021, at 06:48 AM