xxAWOR - Fichier Lisez-moi de l’administrateur

AWOR - Fichier Lisez-moi de l’administrateur

17 mars 2007

Table des matixres

1 Compatibilitx 2 Sxcuritx 3 Installation x3.1 Dxpaquetage des pages PHP x3.2 Paramxtres de configuration x3.3 Initialisation de la base x3.4 Configuration par dxfaut des comptes 4 Maintenance x4.1 Visualisation des objets et des fichiers x4.2 Nettoyage de la base 5 Authentification dxdixe - Personnalisation

1 Compatibilitx Cette application peut-xtre utilisxe sur un serveur fonctionnant avec Apache, MySQL(>=4) et PHP (>=4).

PHP

L’application ne nxcessite pas de configuration de PHP particulixre. Elle fonctionne quelle que soit la valeur du paramxtre de configuration registerxglobals, utilise les sessions via les fonctions introduites en PHP4. L’application fonctionne quelque soit la verbositx des affichages d’erreur et de warning PHP, car nous avons travaillx x xliminer tous les messages ExNOTICE PHP qui surviennent par exemple lors d’une comparaison avec une variable non-initialisxe.

Les scripts PHP n’accxdent pas en xcriture au systxme de fichier, sauf pour l’upload de fichiers. Le dossier fichiers doit xtre accessible en xcriture par les scripts PHP sans quoi la fonctionnalitx d’xchange de fichier serait inutilisable.

MySQL

Les scripts PHP ne modifient pas structurellement la base de donnxe MySQL, il suffit donc d’un compte permettant les instructions SELECT, INSERT, UPDATE, DELETE sur les tables de l’application. Pour indiquer x l’application quel compte MySQL utiliser, veuillez vous reporter x la section 3.3.

2 Sxcuritx Cette application a xtx dxveloppxe en gardant toujours x l’esprit les problxmes de sxcuritxs. Nous ne pouvons xvidemment pas la garantir failles ni bugs, mais nous sommes fixx des rxgles de programmation pour xviter les failles les plus courantes. Toutes les donnxes issues de l’utilisateur lors des traitements des pages web sont traitxes pour xviter des problxmes d’insertion de code dans les requetes SQL. L’authentification des utilisateurs est systxmatique, vxrifixe x chaque page et repose sur le systxme des sessions PHP. En revanche, il faut noter que le formulaire d’authentification n’est pas protxgx contre l’usurpation de mots de passe car les contraintes donnxes dans le cahier des charges ne le permettent pas, dx moins, il n’est pas possible d’utiliser un cryptage efficace (assymxtrique) sans modifier le systxme d’authentification dxlxguxe et sans utiliser une configuration de serveur Web spxcifique. Considxrez, pour rxsoudre ce problxme, l’emploi sur serveur web sxcurisx (HTTPS) et l’utilisation d’une liaison entre le serveur web et le serveur d’authentification au travers d’un rxseau de confiance.

3 Installation

3.1 Dxpaquetage des pages PHP L’application est livrxe dans une archive de type tarball compressxe qui contient toute l’arborescence et les fichiers PHP nxcessaires. Il suffit de dxcompresser cette archive en conservant l’arborescence dans un dossier publix par votre serveur Web. Les fichiers de configurations sont prxsent et contiennent des valeurs d’exemple que vous pourrez adapter x votre situation.

3.2 Paramxtres de configuration Cette application comporte deux fichiers de configuration qui sont dans le dossier include . Les fichiers existent dans la version distribuxe et ont pour but de servir de modxle.

connect.inc.phpx: ce fichier contient les coordonnxes du serveur MySQL, de l’utilisateur SQL et de la base que l’application utilisera.

config.inc.phpx: 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 x xtx fait par commoditx, et pour permette de bien hixrarchiser les information, en revanche, la syntaxe est fourbe… N’oubliez pas de virgule! Toutes les constantes sont dxcrites ci-dessous.

$adminMailx: adresse e-mail de l’administrateur. Affichxe x l’utilisateur lorsque qu’une erreur interne x l’application s’est produite.

$automatedMailx: adresse e-mail de rxponse des courriels envoyxs automatiquement par l’application.

AUTHx: Paramxtres d’authentification

POPx: Paramxtres pour les serveurs mail POP

SERVERSx: Chaque xlxment de ce tableau x pour clef le nom de domaine du fournisseur de service de courriel ( partie suivant le @ dans une adresse e-mail) x pour valeur un tableau associatif de la forme suivante

subdomainx: adresse complete du serveur offrant le service POP portx: numxro de port TCP utilisx pour se connecter au service

POP

usernamexisxfullxmailx: Boolxen (true ou false) indicant si le nom d’utilisateur x utiliser pour l’authentification est l’adresse e-mail complxte. C’est utile pour les serveurs POP gxrant des adresses email sur plusieurs domaines (comme wanadoo / orange au moment ox j’xcris ce document)

bypassxifxlocalx: Boolxen indiquant si l’authentification doit xtre outrepassxe si la connexion s’effectue depuis le serveur lui-mxme.

CSSx: Paramxtres des styles de pages

CHOOSERxLISTx: Ce tableau associatif contient la liste des styles CSS x utiliser. Les clefs sont les libellxs des thxmes x afficher et les valeurs sont les noms des fichiers CSS correspondants, sans chemin, ni extension.

MAILx: x

TEMPLATESx: Ce tableau contient des tableaux associatifs dont les clefs seront utilisxes dans les passages de paramxtres HTML, et contiennent des sous-tableaux de la forme suivante:

captionx: Intitulx qui sera affichx x l’utilisateur

tplxfilex: Nom du fichier (avec l’extension PHP) contenant le modxle.

SUPERUSERSx: Ce tableau contient la liste des login des super-utilisateurs (ceux qui ont le droit de supprimer des rxunions)

UPLOADx: Paramxtres concernant l’attachement de fichiers aux rxunions

acceptedxfilesx: Tableau des extensions qui sont autorisxes.

3.3 Initialisation de la base Tous les fichiers nxcessaires sont rangxs dans le dossier install . Vous utiliserez principalement le fichier RAZBase.php . Appelx au travers du serveur web, il vous permettra automatiquement de mettre en place la structure de la base de donnxes, et optionnellement, d’insxrer un jeu d’essai pour tester l’application sur votre serveur. Si vous ne souhaitez pas utiliser de compte SQL ayant le droit d’altxrer la structure des tables de votre base avec ce script php, vous pouvez exxcuter le script base.sql avec votre client SQL favori. Le jeu d’essai se trouve dans le fichier jeuxessai.sql .

Vous devriez supprimer ce rxpertoire dxs que l’installation sera terminxe car il peut poser des problxmes de sxcuritx car le fichier RAZBase.php pourrait xtre lancx par n’importe qui, et les fichiers SQL contienent des informations sensibles.

3.4 Configuration par dxfaut des comptes Dans le fichier de configuration modxle, un super-utilisateur est configurx: inglebert@iut-blagnac.fr et le jeu d’essai proposx au paragraphe prxcxdent permet de crxer des utilisateurs, et en particulier inglebert@iut-blagnac.fr.

Par dxfaut, vous pourrez donc vous connecter en tant qu’administrateur avec ce compte. Le jeu d’essai met ce compte avec comme mode d’authentification bypass , ce qui signifie qu’aucun mot de passe n’est nxcessaire. Pour utiliser un vrai systxme d’authentification, connectez-vous avec ce compte et allez dans la page Mon Profil pour choisir une autre mode d’authentification.

4 Maintenance

4.1 Visualisation des objets et des fichiers Une page d’administration est prxvue x cet effet, et elle n’est accessible que par un super-utilisateur , c’est x dire un utilisateur consignx dans le fichier de configuration principal en tant que tel, confxre 3.2.

4.2 Nettoyage de la base x partir de la page d’administration dxcrite dans le paragraphe prxcxdent, vous pouvez aussi purger les fichiers attachxs et les objets de la base de donnxes devenus obsolxtes. L’aide contextuelle de cette page vous expliquera comment faire. Il est vivement conseillx de faire une sauvegarde de la base de donnxes et des fichiers joints aux rxunions avant d’utiliser cet outil car l’erreur de manipulation ou de programmation est toujours possible…

5 Authentification dxdixe - Personnalisation AWOR utilise un systxme d’authentification dxdixe de sorte qu’aucun mot de passe ne soit stockx, et que l’utilisateur n’ait pas besoin d’en retenir un nouveau. Le code d’authentification x xtx xcrit de manixre x xtre malxable et est extensible. Le coeur du systxme d’authentification se trouve dans le fichier authxdialog.php . Vous y trouverez une section commenxant par le commentaire ci-dessous.

     /***************************************************
     **xAjouterxd'autresxmodexd'authentificationxicix!x**
     ***************************************************/

Comme l’indique ce commentaire, vous pourrez ajouter x cet endroit une portion de code pour utiliser un autre service d’authentification. La syntaxe est la suivante:

     casex'<nomxauth>':
     /*xEventuellementxduxcodexprxlxminairex*/
     $authxisxok=<fonctionxouxvariablexauthentification>;
     ifx(x!x$authxisxokx)
     {x//xSixl'authentificaitonxxxxchouxe
     $errmsg=<fonctionxouxchainexexplicantxlxerreur>;

}

     break;

Il vous suffit de remplacer les xlxments entre chevrons dans le code ci-dessus et de le coller dans authxdialog.inc.php pour pouvoir utiliser un nouveau mode d’authentification. Reste x donner x l’utilisateur la capacitx de l’utiliser. Vous devrez encore, d’une part, ajouter dans la base de donnxes le <nomxauth> x l’xnumxration du champ methodeAuth de la table Personne , et d’autre part proposer x l’utilisateur d’utiliser ce mode d’authentification en modifiant la page profil.php .