<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="fr" > <head><title>AWOR - Fichier Lisez-moi de l’administrateur</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)"> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)"> <!-- html --> <meta name="src" content="README.tex"> <meta name="date" content="2007-03-11 15:56:00"> <link rel="stylesheet" type="text/css" href="README.css"> </head><body > <div class="maketitle"> <h2 class="titleHead">AWOR - Fichier Lisez-moi de l’administrateur</h2> <div class="author" ></div><br /> <div class="date" ><span class="cmr-12">11 mars 2007</span></div> </div> <h3 class="sectionHead"><span class="titlemark">1 </span> <a id="x1-10001"></a>Compatibilit�</h3> <!--l. 32--><p class="noindent">Cette application peut-�tre utilis�e sur un serveur fonctionnant avec Apache, MySQL(<span class="cmmi-10">></span>=4) et PHP (<span class="cmmi-10">></span>=4). <!--l. 36--><p class="noindent"><span class="paragraphHead"><a id="x1-20001"></a><span class="cmbx-10">PHP</span></span> L’application ne n�cessite pas de configuration de PHP particuli�re. Elle fonctionne quelque soit la valeur du param�tre de configuration register_globals, utilise les sessions via les fonctions introduites en PHP4. L’application fonctionne quelque soit la verbosit� des affichages d’erreur et de warning PHP, car nous avons travaill� � �liminer tous les messages <span class="lasy-10">﹤﹤</span> E_NOTICE <span class="lasy-10">﹥﹥</span> PHP qui surviennent par exemple lors d’une comparaison avec une variable non-initialis�e. <!--l. 46--><p class="indent"> Les scripts PHP n’acc�dent pas en �criture au syst�me de fichier, sauf pour l’upload de fichiers. Le dossier <span class="lasy-10">﹤﹤</span> fichiers <span class="lasy-10">﹥﹥</span> doit �tre accessible en �criture par les scripts PHP sans quoi la fonctionnalit� d’�change de fichier serait inutilisable. <!--l. 52--><p class="noindent"><span class="paragraphHead"><a id="x1-30001"></a><span class="cmbx-10">MySQL</span></span> Les scripts PHP ne modifient pas structurellement la base de donn�e MySQL, il suffit donc d’un compte permettant les instructions SELECT, INSERT, UPDATE, DELETE sur les tables de l’application. Pour indiquer � l’application quel compte MySQL utiliser, veuillez vous reporter � la section <a href="#x1-70003.2">3.2<!--tex4ht:ref: sub:Initialisation-de-la-bd --></a>. <!--l. 61--><p class="noindent"> <h3 class="sectionHead"><span class="titlemark">2 </span> <a id="x1-40002"></a>S�curit�</h3> <!--l. 63--><p class="noindent">Cette application a �t� d�velopp�e en gardant toujours � l’esprit les probl�mes de s�curit�s. Nous ne pouvons �videmment pas la garantir failles ni bugs, mais nous sommes fix� des r�gles de programmation pour �viter les failles les plus courantes. Toutes les donn�es issue de l’utilisateur lors des traitements des pages web sont trait�es pour �viter des probl�mes d’insertion de code dans les requetes SQL. L’authentification des utilisateurs est syst�matique, v�rifi�e � chaque page et repose sur le syst�me des sessions PHP. En revanche, il faut noter que le formulaire d’authentification n’est pas prot�g� contre l’usurpation de mots de passe car les contraintes donn�es dans le cahier des charges ne le permettent pas, d� moins, il n’est pas possible d’utiliser un cryptage efficace (assym�trique) sans modifier le syst�me d’authentification d�l�gu�e et sans utiliser une configuration de serveur Web sp�cifique. Consid�rez, pour r�soudre ce probl�me, l’emploi sur serveur web s�curis� (HTTPS) et l’utilisation d’une liaison entre le serveur web et le serveur d’authentification au travers d’un r�seau de confiance. <!--l. 82--><p class="noindent"> <h3 class="sectionHead"><span class="titlemark">3 </span> <a id="x1-50003"></a>Installation</h3> <!--l. 87--><p class="noindent"> <h4 class="subsectionHead"><span class="titlemark">3.1 </span> <a id="x1-60003.1"></a>Param�tres de configuration</h4> <!--l. 89--><p class="noindent">Cette application comporte deux fichiers de configuration qui sont dans le dossier <span class="lasy-10">﹤﹤</span>include <span class="lasy-10">﹥﹥</span>. Les fichiers existent dans la version distribu�e et ont pour but de servir de mod�le. <!--l. 93--><p class="indent"> <dl class="description"><dt class="description"> <span class="cmbx-10">connect.inc.php</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">ce fichier contient les coordonn�es du serveur MySQL, de l’utilisateur SQL et de la base que l’application utilisera. </dd><dt class="description"> <span class="cmbx-10">config.inc.php</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">ce fichier contient tout le reste de la configuration de l’application. Le fichier est un script PHP qui initialise un tableau multi-dimentionnel. Ce choix � �t� fait par commodit�, et pour permette de bien hi�rarchiser les information, en revanche, la syntaxe est fourbe... N’oubliez pas de virgule<span class="frenchb-thinspace"> </span>! Toutes les constantes sont d�crites ci-dessous. <!--l. 103--><p class="noindent"> <dl class="description"><dt class="description"> <span class="cmbx-10">$adminMail</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">adresse e-mail de l’administrateur. Affich�e � l’utilisateur lorsque qu’une erreur interne � l’application s’est produite. </dd><dt class="description"> <span class="cmbx-10">$automatedMail</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">adresse e-mail de r�ponse des courriels envoy�s automatiquement par l’application. </dd><dt class="description"> <span class="cmbx-10">AUTH</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Param�tres d’authentification <!--l. 111--><p class="noindent"> <dl class="description"><dt class="description"> <span class="cmbx-10">POP</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Param�tres pour les serveurs mail POP <!--l. 114--><p class="noindent"> <dl class="description"><dt class="description"> <span class="cmbx-10">SERVERS</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Chaque �l�ment de ce tableau � pour clef le nom de domaine du fournisseur de service de courriel ( partie suivant le @ dans une adresse e-mail) � pour valeur un tableau associatif de la forme suivante <!--l. 120--><p class="noindent"> <dl class="description"><dt class="description"> <span class="cmbx-10">subdomain</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">adresse complete du serveur offrant le service POP </dd><dt class="description"> <span class="cmbx-10">port</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">num�ro de port TCP utilis� pour se connecter au service POP </dd><dt class="description"> <span class="cmbx-10">username</span><span class="cmbx-10">_is</span><span class="cmbx-10">_full</span><span class="cmbx-10">_mail</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Bool�en (true ou false) indicant si le nom d’utilisateur � utiliser pour l’authentification est l’adresse e-mail compl�te. C’est utile pour les serveurs POP g�rant des adresses email sur plusieurs domaines (comme wanadoo / orange au moment o� j’�cris ce document)</dd></dl> </dd></dl> </dd><dt class="description"> <span class="cmbx-10">bypass</span><span class="cmbx-10">_if</span><span class="cmbx-10">_local</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Bool�en indiquant si l’authentification doit �tre outrepass�e si la connexion s’effectue depuis le serveur lui-m�me.</dd></dl> </dd><dt class="description"> <span class="cmbx-10">CSS</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Param�tres des styles de pages <!--l. 137--><p class="noindent"> <dl class="description"><dt class="description"> <span class="cmbx-10">CHOOSER</span><span class="cmbx-10">_LIST</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Ce tableau associatif contient la liste des styles CSS � utiliser. Les clefs sont les libell�s des th�mes � afficher et les valeurs sont les noms des fichiers CSS correspondants, sans chemin, ni extension.</dd></dl> </dd><dt class="description"> <span class="cmbx-10">MAIL</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">  <!--l. 145--><p class="noindent"> <dl class="description"><dt class="description"> <span class="cmbx-10">TEMPLATES</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Ce tableau contient des tableaux associatifs dont les clefs seront utilis�es dans les passages de param�tres HTML, et contiennent des sous-tableaux de la forme suivante<span class="frenchb-nbsp"> </span>: <!--l. 150--><p class="noindent"> <dl class="description"><dt class="description"> <span class="cmbx-10">caption</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Intitul� qui sera affich� � l’utilisateur </dd><dt class="description"> <span class="cmbx-10">tpl</span><span class="cmbx-10">_file</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Nom du fichier (avec l’extension PHP) contenant le mod�le.</dd></dl> </dd></dl> </dd><dt class="description"> <span class="cmbx-10">SUPERUSERS</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Ce tableau contient la liste des login des super-utilisateurs (ceux qui ont le droit de supprimer des r�unions) </dd><dt class="description"> <span class="cmbx-10">UPLOAD</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Param�tres concernant l’attachement de fichiers aux r�unions <!--l. 161--><p class="noindent"> <dl class="description"><dt class="description"> <span class="cmbx-10">accepted</span><span class="cmbx-10">_files</span><span class="frenchb-nbsp"> </span><span class="cmbx-10">:</span> </dt><dd class="description">Tableau des extensions qui sont autoris�es.</dd></dl> </dd></dl> </dd></dl> <!--l. 167--><p class="noindent"> <h4 class="subsectionHead"><span class="titlemark">3.2 </span> <a id="x1-70003.2"></a>Initialisation de la base</h4> <!--l. 169--><p class="noindent">Tout les fichiers n�cessaires sont rang�s dans le dossier <span class="lasy-10">﹤﹤</span> install <span class="lasy-10">﹥﹥</span>. Vous utiliserez principalement le fichier <span class="lasy-10">﹤﹤</span> RAZBase.php <span class="lasy-10">﹥﹥</span>. Appel� au travers du serveur web, il vous permettra automatiquement de mettre en place la structure de la base de donn�es, et optionnellement, d’ins�rer un jeu d’essai pour tester l’application sur votre serveur. Si vous ne souhaitez pas utiliser de compte SQL ayant le droit d’alt�rer la structure des tables de votre base avec ce script php, vous pouvez ex�cuter le script <span class="lasy-10">﹤﹤</span> base.sql <span class="lasy-10">﹥﹥</span> avec votre client SQL favori. Le jeu d’essai se trouve dans le fichier <span class="lasy-10">﹤﹤</span> jeu_essai.sql <span class="lasy-10">﹥﹥</span>. <!--l. 180--><p class="noindent"> <h3 class="sectionHead"><span class="titlemark">4 </span> <a id="x1-80004"></a>Maintenance</h3> <!--l. 183--><p class="noindent"> <h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a id="x1-90004.1"></a>Visualisation des objets et des fichiers</h4> <!--l. 185--><p class="noindent">Une page d’administration est pr�vue � cet effet, et elle n’est accessible que par un <span class="lasy-10">﹤﹤</span> super-utilisateur <span class="lasy-10">﹥﹥</span>, c’est � dire un utilisateur consign� dans le fichier de configuration principal en tant que tel, conf�re <a href="#x1-60003.1">3.1<!--tex4ht:ref: sub:Configuration --></a>. <!--l. 191--><p class="noindent"> <h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a id="x1-100004.2"></a>Nettoyage de la base</h4> <!--l. 193--><p class="noindent">� partir de la page d’administration d�crite dans le paragraphe pr�c�dent, vous pouvez aussi purger les fichiers attach�s et les objets de la base de donn�es devenus obsol�tes. L’aide contextuelle de cette page vous expliquera comment faire. Il est vivement conseill� de faire une sauvegarde de la base de donn�es et des fichiers joints aux r�unions avant d’utiliser cet outil car l’erreur de manipulation ou de programmation est toujours possible... <!--l. 202--><p class="noindent"> <h3 class="sectionHead"><span class="titlemark">5 </span> <a id="x1-110005"></a>Authentification d�di�e - Personnalisation</h3> <!--l. 204--><p class="noindent">AWOR utilise un syst�me d’authentification d�di�e de sorte qu’aucun mot de passe ne soit stock�, et que l’utilisateur n’ait pas besoin d’en retenir un nouveau. Le code d’authentification � �t� �crit de mani�re � �tre mal�able et est extensible. Le coeur du syst�me d’authentification se trouve dans le fichier <span class="lasy-10">﹤﹤</span>auth_dialog.php <span class="lasy-10">﹥﹥</span>. Vous y trouverez une section commen�ant par le commentaire ci-dessous. <!--l. 212--><p class="noindent"> <dl class="list1"><dt class="list"> </dt><dd class="list"> <span class="cmtt-10">/***************************************************************</span> <!--l. 215--><p class="noindent"><span class="cmtt-10">**</span><span class="cmtt-10"> </span><span class="cmtt-10">Vous</span><span class="cmtt-10"> </span><span class="cmtt-10">pouvez</span><span class="cmtt-10"> </span><span class="cmtt-10">ajouter</span><span class="cmtt-10"> </span><span class="cmtt-10">d’autres</span><span class="cmtt-10"> </span><span class="cmtt-10">mode</span><span class="cmtt-10"> </span><span class="cmtt-10">d’authentification</span><span class="cmtt-10"> </span><span class="cmtt-10">ici</span><span class="cmtt-10"> </span><span class="cmtt-10">!</span><span class="cmtt-10"> </span><span class="cmtt-10">**</span> <!--l. 217--><p class="noindent"><span class="cmtt-10">***************************************************************/</span></dd></dl> <!--l. 220--><p class="noindent">Comme l’indique ce commentaire, vous pourrez ajouter � cet endroit une portion de code pour utiliser un autre service d’authentification. La syntaxe est la suivante<span class="frenchb-nbsp"> </span>: <!--l. 224--><p class="noindent"> <dl class="list1"><dt class="list"> </dt><dd class="list"> <span class="cmtt-10">case</span><span class="cmtt-10"> </span><span class="cmtt-10">’<nom</span><span class="cmtt-10">_auth>’</span><span class="frenchb-nbsp"> </span><span class="cmtt-10">:</span> <!--l. 227--><p class="noindent"><span class="cmtt-10">/*</span><span class="cmtt-10"> </span><span class="cmtt-10">Eventuellement</span><span class="cmtt-10"> </span><span class="cmtt-10">du</span><span class="cmtt-10"> </span><span class="cmtt-10">code</span><span class="cmtt-10"> </span><span class="cmtt-10">pr</span><span class="cmtt-10">�l</span><span class="cmtt-10">�minaire</span><span class="cmtt-10"> </span><span class="cmtt-10">*/</span> <!--l. 230--><p class="noindent"><span class="cmtt-10">$auth</span><span class="cmtt-10">_is</span><span class="cmtt-10">_ok=<fonction</span><span class="cmtt-10">_ou</span><span class="cmtt-10">_variable</span><span class="cmtt-10">_authentification>;</span> <!--l. 232--><p class="noindent"><span class="cmtt-10">if</span><span class="cmtt-10"> </span><span class="cmtt-10">(</span><span class="cmtt-10"> </span><span class="cmtt-10">!</span><span class="cmtt-10"> </span><span class="cmtt-10">$auth</span><span class="cmtt-10">_is</span><span class="cmtt-10">_ok</span><span class="cmtt-10"> </span><span class="cmtt-10">)</span> <!--l. 234--><p class="noindent"><span class="cmsy-10">{</span><span class="cmtt-10"> </span><span class="cmtt-10">//</span><span class="cmtt-10"> </span><span class="cmtt-10">On</span><span class="cmtt-10"> </span><span class="cmtt-10">ex</span><span class="cmtt-10">�cute</span><span class="cmtt-10"> </span><span class="cmtt-10">la</span><span class="cmtt-10"> </span><span class="cmtt-10">ligne</span><span class="cmtt-10"> </span><span class="cmtt-10">ci-dessous</span><span class="cmtt-10"> </span><span class="cmtt-10">que</span><span class="cmtt-10"> </span><span class="cmtt-10">si</span><span class="cmtt-10"> </span><span class="cmtt-10">l’authentificaiton</span><span class="cmtt-10"> </span><span class="cmtt-10">�</span><span class="cmtt-10"> </span><span class="cmtt-10">�chou</span><span class="cmtt-10">�e</span> <!--l. 236--><p class="noindent"><span class="cmtt-10">$errmsg=<fonction</span><span class="cmtt-10">_ou</span><span class="cmtt-10">_chaine</span><span class="cmtt-10">_explicant</span><span class="cmtt-10">_l</span><span class="cmtt-10">_erreur</span><span class="cmtt-10">_d</span><span class="cmtt-10">_authentification>;</span> <!--l. 238--><p class="noindent"><span class="cmsy-10">}</span> <!--l. 240--><p class="noindent"><span class="cmtt-10">break;</span></dd></dl> <!--l. 242--><p class="noindent">Il vous suffit de remplacer les �l�ments entre chevrons dans le code ci-dessus et de le coller dans <span class="lasy-10">﹤﹤</span>auth_dialog.inc.php<span class="lasy-10">﹥﹥</span> pour pouvoir utiliser un nouveau mode d’authentification. Reste � donner � l’utilisateur la capacit� de l’utiliser. Vous devrez encore, d’une part, ajouter dans la base de donn�es le <span class="cmmi-10"><</span>nom_auth<span class="cmmi-10">> </span>� l’�num�ration du champ <span class="lasy-10">﹤﹤</span>methodeAuth<span class="lasy-10">﹥﹥</span> de la table <span class="lasy-10">﹤﹤</span>Personne<span class="lasy-10">﹥﹥</span>, et d’autre part proposer � l’utilisateur d’utiliser ce mode d’authentification en modifiant la page <span class="lasy-10">﹤﹤</span>profil.php<span class="lasy-10">﹥﹥</span>. </body></html>