Ada Programming $WikiTagline
 

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 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');  
    $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.

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.

<< | Index doc admin? | >>


Traduction de PmWiki:UploadsAdmin - Page originale sur PmWiki:PmWikiFr.AdministrationDesT�l�chargements