1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
AWOR - Fichier Lisez-moi de l'administrateur
1 Compatibilit�
Cette application peut-�tre utilis�e sur un serveur
fonctionnant avec Apache, MySQL(>=4) et PHP (>=4).
PHP
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 "E_NOTICE" PHP qui
surviennent par exemple lors d'une comparaison avec une
variable non-initialis�e.
Les scripts PHP n'acc�dent pas en �criture au syst�me
de fichier, sauf pour l'upload de fichiers. Le dossier "fichiers"
doit �tre accessible en �criture par les scripts PHP
sans quoi la fonctionnalit� d'�change de fichier serait
inutilisable.
MySQL
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 [sub:Initialisation-de-la-bd].
2 S�curit�
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.
3 Installation
3.1 <sub:Configuration>Param�tres de configuration
Cette application comporte deux fichiers de
configuration qui sont dans le dossier "include". Les
fichiers existent dans la version distribu�e et ont
pour but de servir de mod�le.
connect.inc.php : ce fichier contient les coordonn�es
du serveur MySQL, de l'utilisateur SQL et de la base
que l'application utilisera.
config.inc.php : 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 ! Toutes les constantes sont
d�crites ci-dessous.
$adminMail : adresse e-mail de l'administrateur.
Affich�e � l'utilisateur lorsque qu'une erreur
interne � l'application s'est produite.
$automatedMail : adresse e-mail de r�ponse des
courriels envoy�s automatiquement par l'application.
AUTH : Param�tres d'authentification
POP : Param�tres pour les serveurs mail POP
SERVERS : 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
subdomain : adresse complete du serveur offrant
le service POP
port : num�ro de port TCP utilis� pour se
connecter au service POP
username_is_full_mail : 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)
bypass_if_local : Bool�en indiquant si
l'authentification doit �tre outrepass�e si la
connexion s'effectue depuis le serveur lui-m�me.
CSS : Param�tres des styles de pages
CHOOSER_LIST : 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.
MAIL :
TEMPLATES : 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 :
caption : Intitul� qui sera affich� � l'utilisateur
tpl_file : Nom du fichier (avec l'extension PHP)
contenant le mod�le.
SUPERUSERS : Ce tableau contient la liste des login
des super-utilisateurs (ceux qui ont le droit de
supprimer des r�unions)
UPLOAD : Param�tres concernant l'attachement de
fichiers aux r�unions
accepted_files : Tableau des extensions qui sont autoris�es.
3.2 <sub:Initialisation-de-la-bd>Initialisation de la base
Tout les fichiers n�cessaires sont rang�s dans le
dossier "install". Vous utiliserez principalement le
fichier "RAZBase.php". 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 "base.sql" avec votre client SQL
favori. Le jeu d'essai se trouve dans le fichier "jeu_essai.sql".
4 Maintenance
4.1 Visualisation des objets et des fichiers
Une page d'administration est pr�vue � cet effet, et
elle n'est accessible que par un "super-utilisateur",
c'est � dire un utilisateur consign� dans le fichier de
configuration principal en tant que tel, conf�re [sub:Configuration].
4.2 Nettoyage de la base
� 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...
5 Authentification d�di�e - Personnalisation
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 "auth_dialog.php"
. Vous y trouverez une section commen�ant par le
commentaire ci-dessous.
/***************************************************
** Ajouter d'autres mode d'authentification ici ! **
***************************************************/
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 :
case '<nom_auth>':
/* Eventuellement du code pr�l�minaire */
$auth_is_ok=<fonction_ou_variable_authentification>;
if ( ! $auth_is_ok )
{ // On ex�cute la ligne ci-dessous que si
l'authentificaiton � �chou�e
$errmsg=<fonction_ou_chaine_explicant_l_erreur_d_authentification>;
}
break;
Il vous suffit de remplacer les �l�ments entre chevrons
dans le code ci-dessus et de le coller dans "auth_dialog.inc.php"
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 <nom_auth> �
l'�num�ration du champ "methodeAuth" de la table "Personne"
, et d'autre part proposer � l'utilisateur d'utiliser
ce mode d'authentification en modifiant la page "profil.php".
|