Conception et réalisation d`une application de gestion de

Transcription

Conception et réalisation d`une application de gestion de
FACULTE DE MATHEMATIQUES
ET D’INFORMATIQUE
DESS CCI
Compétence Complémentaire en Informatique
Conception et réalisation
d’une application de gestion
de base de données
biologiques et chimiques
Présenté par : FOSCHIATTI Franck
Encadré par : PUGET Karine et CLAVIER Karine
Tuteur enseignant : KRETZ Michel
Année Universitaire 2001-2002
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Sommaire
Remerciements
Glossaire
Abréviations
Introduction
Introduction générale. . . . . . . . . . . . . . . . . . . . . . . . . . . . p.1
Présentation du laboratoire. . . . . . . . . . . . . . . . . . . . . . . . p.2
Matériels et méthodes
Le serveur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p.4
Langages utilisés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p.6
Résultats
Le site intranet
Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ajout des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modification des données. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Upload d’un fichier excel. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bilan thématique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changement de mot de passe. . . . . . . . . . . . . . . . . . . . . . . . .
Architecture du site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p.7
p.9
p.11
p.11
p.12
p.14
p.14
La sécurité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p.16
Conclusion
Annexe 1 : Rapport sur la sécurité
Annexe 2 : Morceau de programme
Résumé
p.18
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Remerciements
Je souhaiterais dans un premier temps remercier le professeur Jean Martinez pour
m’avoir accepté au sein de son laboratoire.
Je désirerais également rendre hommage à mon maître de stage Karine Puget qui a su
me faire confiance et qui m’a proposé un sujet de stage instructif, intéressant et attrayant tout
autant que pour son soutien, ainsi qu’à Karine Clavier qui m’a épaulé et aidé quand il le
fallait. Je les remercie toutes deux de m’avoir accompagné tout au long de ce stage.
J’en profiterais également pour saluer tous les autres membres du laboratoire pour leur
amabilité à mon égard et leur sympathie, pour leur patience et leurs explications.
Je me dois également de remercier le professeur Michel Kretz pour avoir accepté que
je fasse ce stage et pour avoir répondu à toutes mes questions.
A Montpellier et à ses charmes…
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Glossaire
Biologie
Agoniste : Il s’agit d’une molécule qui se fixe sur les mêmes récepteurs que le peptide naturel
et qui entraîne une activité biologique. Ces agonistes peuvent être par exemple utilisés pour
augmenter l’activité d’une molécule naturelle.
Antagoniste : Appelé aussi compétiteur, il s’agit d’une molécule qui déplace les peptides
naturels des récepteurs pour en prendre la place, mais qui n’entraîne pas d’activité biologique.
Génome : Ensemble des gènes d'une espèce. Il est à la base de la synthèse des protéines et des
peptides, et donc de la construction fonctionnelle de notre corps.
Peptide : Petite molécule formée par une succession d'aminoacides fixés les uns aux autres par
une liaison peptidique.
Protéine : Macromolécule composée essentiellement d'aminoacides et qui peut avoir de
nombreuses fonctionnalités différentes : certaines auront un rôle dans la structure, d'autres
dans la régulation, l'activation ou l'inhibition de processus divers.
Récepteur : Molécule biologique qui capte un signal à l’extérieur de la cellule par la fixation
d’une d’un peptide sur son site de liaison par exemple, et le transforme en un signal
intracellulaire.
Criblage : Recherche systématique d’un type de molécule en en passant un grand nombre en
revue.
Séquençage peptidique : Cherche à définir une séquence peptidique en obtenant l’ensemble
des aminoacides qui forme cette dernière.
Séquence peptidique : Ensemble des aminoacides qui forme le peptide. Selon la séquence, la
conformation spatiale sera différente.
Informatique
Adresses IP : Adresses Internet utilisées pour connaître la localisation d’un ordinateur lors
d’un envoi de paquets (ex : email). Chaque adresse est unique, car elle définit un réseau et
sous-réseau.
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Driver : Pilote permettant à la carte mère de gérer une autre interface (carte graphique, carte
son…).
Firewall : Appelé également pare-feu, coupe-feu ou encore garde-barrière, il sert à protéger
l’ordinateur de différentes attaques extérieures. Il existe des firewall logiciels ou matériels.
Login : Nom d’utilisateur autorisant l’accès à une application.
Permissions : Un fichier peut être lu, écrit et/ou exécutable. Un fichier en lecture seul ne peut
être que visualisé et non modifié. Sous Unix/Linux, ces permissions sont démultipliées en
trois groupes : le propriétaire (du fichier), le groupe auquel appartient le propriétaire, et les
autres. Chacun des groupes peut avoir des permissions différentes.
Port : Accès vers l’extérieur de l’ordinateur permettant de communiquer avec lui par
l’intermédiaire de câbles (port physique : parallèle, série, USB), ou par une connexion
Internet (port virtuel : port 80 = http, port 21 = FTP, …).
Serveur : Il s’agit d’un ordinateur donnant accès à certaines de ses informations à d’autres
machines clientes ayant un accès réseau.
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Abréviations
CAPS : Computeur-Assisted Peptide Search
HTML : Hyper Text Markup Langage
HTTP : Hyper Text Transfert Protocol
IP : Internet Protocol
LAPP : Laboratoire des Aminoacides, Peptides et Protéines
PHP : PHP Hyper Text Preprocessor
RAID : Redundancy Array of Independant Disk, ensemble redondant de disques indépendants
UMI : Université Montpellier I
UMII : Université Montpellier II
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Introduction
Introduction générale
Dans le cadre du DESS Compétence Complémentaire en Informatique suivi durant
l’année scolaire 2001-2002 à l’ULP de Strasbourg, j’ai effectué un stage de 4 mois ½ dans les
locaux du Laboratoire des Aminoacides, Peptides et Protéines (LAPP), laboratoire mixte
UMI/UMII/CNRS à la faculté de Pharmacie de Montpellier.
J’ai choisi de réaliser mon stage au sein du LAPP car le sujet qui m’était proposé
répondait parfaitement à mes objectifs. En effet, souhaitant me diriger vers une double
compétence Biologie-Informatique, ce laboratoire me proposait de créer un site Intranet, de le
gérer par un serveur installé par mes soins, permettant de piloter une base de données
scientifique.
Lors de mon arrivée au LAPP, la base de données était créée et les valeurs étaient
ajoutées manuellement en insérant les données d’un fichier Excel au format .csv dans la base.
L’objectif que m’a confié Mademoiselle Puget Karine, Chef de Projet dans le laboratoire,
consistait donc à créer une interface conviviale afin que les utilisateurs puissent entrer leurs
valeurs ou le contenu de leurs fichiers Excel par l’intermédiaire du site et que tous les
traitements suivants soient automatisés. Le code source a été écrit sous HTML et PHP, et la
base de donnée sous MySQL. Le serveur servira donc d’entité indépendante permettant
l’addition des données sans la nécessité d’une tierce personne.
Après une présentation du laboratoire, vous trouverez dans ce rapport un descriptif des
travaux réalisés, des problèmes rencontrés ainsi que des connaissances acquises au cours de
ce stage.
1
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Présentation du laboratoire
Le laboratoire des Aminoacides, Peptides et Protéines est divisé en deux unités, l’une
à l’Université Montpellier I (UMI), la deuxième à l’Université Montpellier II (UMII), toutes
dirigées par le professeur Jean Martinez. Le laboratoire comprend une centaine de personnes
réparties sur les deux universités. Alors qu’à l’UMII, les travaux sont davantage orientés vers
la chimie organique, l’unité de l’UMI est beaucoup plus diversifiée, comprenant la biologie
moléculaire, la pharmacologie, la chimie peptidique et la modélisation moléculaire. Toutes
ces branches se rejoignent dans différents travaux de recherche, la plupart orientés vers la
thérapeutique.
De nombreux travaux sont réalisés en partenariat avec des laboratoires privés, comme
ceux menés par le groupe C.A.P.S. (Computeur-Assisted Peptide Search) du LAPP avec qui
j’ai réalisé mon stage et qui travaille conjointement avec le laboratoire pharmaceutique
IPSEN-Beaufour. Cette équipe est composée de neuf personnes : trois chimistes (synthèse
et analyse) trois biologistes (pharmacologie, biologie générale et biologie moléculaire), deux
bioinformaticiens (modélisation moléculaire, administrateur de base de données) et la chef de
projet Karine Puget sur l’initiative du professeur Jean Martinez. Cette équipe recherche de
nouvelles cibles thérapeutiques (des peptides naturels et leurs récepteurs) par une méthode
novatrice. En effet, beaucoup de laboratoires sélectionnent un récepteur et font ensuite un
« screening » de toutes les molécules possibles afin d’en trouver une qui ait une activité
biologique. Le groupe CAPS traite le problème à l’envers en recherchant de nouveaux
peptides naturels dont la fonction est inconnue et en cherchant ensuite sa cible biologique et
son activité. Il est également possible d’en chercher des antagonistes ou des agonistes qui
pourront alors avoir de larges applications thérapeutiques (diabète, obésité, ostéoporose,
maladies cardiovasculaires ...).
Pour initialiser ces recherches, il fallait trouver de nouveaux peptides naturels non
connus. De plus en plus de génomes d’organismes divers sont séquencés et les informations
stockées dans des banques de données, et la moitié seulement des fonctions des protéines
codées identifiées sont connues. Il est donc probable de rencontrer de nouveaux peptides
jusqu’alors inconnus ou de découvrir de nouvelles fonctions aux protéines déjà identifiées.
Pour cela, l’analyse des protéines à partir desquels les peptides sont générés a permis de
définir un « portrait robot » (ou filtre informatique) de la séquence codante. La séquence des
génomes a ensuite été comparée à ce filtre et les précurseurs potentiels de peptides ont été
2
Foschiatti Franck
Rapport de stage
Avril-Août 2002
retenus afin de générer une liste de peptides à étudier. Chacun d’eux est donc synthétisé et
testé afin d’évaluer son activité biologique.
Tout comme les séquençages, toutes ces recherches, les tests, les résultats chimiques et
biologiques entraînent une masse énorme d’informations. Celles-ci devant être accessibles
afin de pouvoir les analyser et les réutiliser, la solution la plus logique a été la création d’une
base de données. La plupart du temps, ce sont les manipulateurs qui peuvent avoir besoins des
résultats. N’étant pas informaticiens, ils pourraient avoir des difficultés à appréhender la base
de données sans un apprentissage préalable. C’est pourquoi, afin de prévoir un niveau de
sécurité suffisant d’une part, et d’apporter une touche de convivialité et de simplicité à l’accès
de ces données d’autre part, il m’a été demandé de créer le site Intranet qui est présenté dans
ces quelques pages. Il tient donc compte du niveau d’exigence des utilisateurs et de la
sécurité, importante variable qui doit assurer la confidentialité des données.
Pour finir, une base similaire sera mise en place au sein d’une Start-Up en instance de
création par Karine Puget, qui regroupera toute l’équipe CAPS et qui s’appellera GENEPEP.
Les données recueillies dans cette base étant très importantes, il est logique qu’une attention
toute particulière ait été apportée à la sécurité, un thème récurrent que vous retrouverez dans
ce rapport.
Photo de l’équipe CAPS
3
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Matériel et Méthodes
Le serveur
Le serveur possède trois disques durs, un de 20 Go qui contient le système
d’exploitation (Linux RedHat), et deux de 100 Go qui sont montés en RAID 1. Le RAID
(Redundancy Array of Independant Disk, ensemble redondant de disques indépendants) est
une méthode qui permet d’associer plusieurs disques durs dans différentes perspectives. Le
RAID 0 ou « stripping » permet de lire et d’écrire des données en parallèle afin d’augmenter
les performances. Le RAID 1 quant à lui s’appelle également « hard disks mirroring », ce qui
signifie que toutes les actions menées sur le premier disque se produisent simultanément sur
le deuxième. Ce dernier est caché, empêchant quiconque de modifier directement ses données
sans passer par le premier disque. Bien entendu, si l’on efface les données du premier disque,
elles le seront également sur le deuxième puisqu’il agit en miroir. Ce système permet
néanmoins de garantir une certaine sécurité des données, notamment en se protégeant contre
d’éventuels « crash disk ». Enfin, le RAID 0+1 regroupe les deux premiers. Il nécessite quatre
disques puisqu’il utilise le stripping et le mirroring. Il existe encore d’autres types de RAID
que nous ne détaillerons pas ici.
La carte mère est une KR7A RAID possédant un contrôleur de RAID, le HPT372
ATA, ce qui permet une configuration du RAID directement dans le BIOS. Toutefois, la
difficulté fut d’installer le système d’exploitation Linux. Ce dernier avait été choisi en raison
de la sécurité, de la stabilité, de la fiabilité ainsi que son coût. Mais, le premier problème fut le
lancement de l’installation. En effet, dès le départ, un message précisait : « Attempt to kill
init ». Après quelques recherches, ce dysfonctionnement venait non pas de la version de
Linux, mais du noyau de ce denier qui ne possédait pas les drivers du contrôleur de RAID
(ceux qui étaient fournis étaient uniquement ceux de Windows). Il a donc fallu ajouter ceux-ci
lors de l’installation.
Une deuxième erreur indiquait que le RAID n’était pas entièrement reconstruit. Il
s’avéra après certaines recherches et vérifications que cela n’affectait en rien l’efficacité du
RAID. Puis il fallut résoudre les quelques difficultés résultant de l’installation de différents
logiciels tel qu’Apache, MySQL ou encore phpMyAdmin, Java et Jext (un éditeur de
programmes comme Java, PHP, … écrit en Java). Après modification des permissions pour
4
Foschiatti Franck
Rapport de stage
Avril-Août 2002
MySQL, l’ajout d’un lien symbolique sur le Socket de MySQL pour avoir accès à
phpMyAdmin et l’ajout d’un script exportant les variables d’environnement de Java pour
l’utilisation de Jext, le serveur était quasiment opérationnel.
Le dernier point, et non le moindre, était l’accès réseau à partir des machines devant
pouvoir atteindre la base de données. Il s’avérait que le serveur était enfermé dans un cocon
alors qu’il était bien branché au niveau du réseau. Ne venant pas de la configuration du
routeur, une légère suspicion s’est portée sur le firewall intégré à Linux. Quelles étaient ses
options paramétrées par défaut ? Certes, il était logique qu’il n’autorise aucune entrée ou
sortie de données, mais encore fallait-il y penser. Ainsi, après configuration du firewall, mais
surtout ajout des adresses IP autorisées à accéder au serveur, ce dernier était prêt à remplir ses
offices tout en assurant une sécurité à toute épreuve.
5
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Les langages utilisés
Le HTML et le PHP sont certainement les langages de programmation les plus utilisés
sur Internet. Le HTML (Hyper Text Markup Langage) est un langage de balise et sert
essentiellement à la présentation graphique d’un site. Le PHP quant à lui permet tout le
traitement en arrière plan. Il permet par exemple de gérer les données entrées par l’utilisateur
et envoyées par la méthode GET ou POST par la page HTML. Il peut récupérer également des
valeurs inscrites dans la base de données, les comparer aux valeurs de l’utilisateur, ce qui peut
servir pour une identification. Et enfin, il peut envoyer des données vers la base MySQL par
l’intermédiaire du serveur, dans notre cas Apache.
Ces deux langages ont été utilisés conjointement afin de donner forme au site tel que
vous le découvrirez. Ils ont permis d’obtenir à la fois une interface graphique intéressante et
une convivialité garantissant une facilité d’utilisation. Ils ont ainsi autorisé l’accès à la base de
données afin d’y ajouter ou modifier des résultats tout en proposant un ensemble de
protections et de recherches d’erreurs pour limiter leur nombre dans la base.
MySQL qui est en réalité un système de gestion de base de données relationnel, utilise
le langage SQL qui permet d’entrer des données dans la base grâce à un ensemble de requêtes.
Celles utilisées dans le programme se résument essentiellement à la sélection d’éléments de la
base en fonction de certains critères comme l’appartenance à une table où la correspondance
entre deux éléments de deux tables différentes, l’insertion de données ou la modification de
celles-ci. Avec ces quatre commandes (SELECT, INSERT, DELETE et UPDATE), il a été
possible de combler les attentes des différents membres du groupe qui doivent utiliser ce site.
6
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Résultats
Le site Intranet
1) Présentation
Le groupe CAPS se décompose en plusieurs secteurs d’activités, chacun d’eux
pouvant avoir besoin de la base de données. Ainsi le site Intranet est lui-même découpé en
groupes, augmentant le niveau de sécurité et permettant une réduction des données
modifiables par chacun d’eux. Chaque utilisateur doit d’abord passer une page
d’identification :
Figure 1 : page d’identification
Celle-ci permet de comparer le login et le mot de passe avec ceux de la base, et après
correspondance, d’envoyer l’utilisateur vers une page personnalisée au groupe auquel il
appartient. Pour cela, il faut que la base possède préalablement les informations nécessaires
sur « l’intranaute », c'est-à-dire ses login, mot de passe, et groupe, mais il est possible d’y
7
Foschiatti Franck
Rapport de stage
Avril-Août 2002
intégrer d’autres informations comme son nom, son prénom, son email, un identifiant et enfin
un bit d’accès utilisé pour sécuriser la base (ceci sera expliqué ultérieurement).
Il existe six groupes différents : les chimistes, les biologistes, les bioinformaticiens, les
anciens utilisateurs, les autres qui n’appartiennent pas au groupe CAPS, un groupe appelé
« Tout », et l’administrateur. Le groupe des Anciens et des Autres permet seulement d’obtenir
une page leur précisant qu’il ne leur est pas ou plus permis d’accéder à la base. Ces groupes
existent pour qu’il reste une trace des travaux effectués par ces personnes, car certains
attributs de la base réclament le nom du manipulateur.
Le groupe Tout, actuellement composé de Karine Puget et du professeur Jean
Martinez, est en fait le point de surveillance de la base qui leur permet d’accéder à la
consultation de la base entière et aux différents bilans.
L’administrateur ayant directement accès à la base via phpMyAdmin (par exemple), il
n’a donc pas besoin d’une interface graphique supplémentaire pour consulter ou modifier les
données. Il sera ainsi le seul à pouvoir ajouter ou modifier un compte, et donc à débloquer ce
dernier en cas de nécessité (voir section Sécurité).
Les autres groupes peuvent quant à eux avoir accès aux bilans reprenant l’ensemble
des informations recueillies dans la base sur un peptide donné, ajouter ou modifier leurs
propres données par l’intermédiaire des pages proposées à cet effet, les ajouter par
l’intermédiaire de feuilles de calcul Excel ou enfin modifier leur mot de passe.
Figure 2 : Page d’accueil du groupe Chimie
8
Foschiatti Franck
Rapport de stage
Avril-Août 2002
3) Ajout de données
Le choix d’ajouter ses données est personnalisé en fonction du groupe. En effet,
chacun d’eux à la possibilité d’ajouter différentes valeurs dans différentes tables de la base, et
chacune d’elle est donc présentée par une page HTML différente. La liste déroulante située au
côté de cette option permet donc de choisir quelle table l’utilisateur veut remplir. Si aucune
valeur n’est choisie dans cette liste, une nouvelle page avec le choix de la table à remplir est
ouverte.
Figure 4 : Choix du type de données à ajouter dans le groupe chimie
9
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Figure 5 : Exemple de données à rentrer par les chimistes
Puis la page HTML choisie donne la possibilité d’entrer ses valeurs qui sont envoyées
vers une page PHP qui va elle-même envoyer les données vers la base. Cette page est donc
transparente à l’utilisateur. C’est là que se déroule tout le traitement, en particulier les
vérifications qui permettront de limiter au maximum les erreurs. Par exemple, pour une
séquence peptidique, certaines lettres de l’alphabet ne correspondent pas à un acide aminé, il
est donc possible de déceler leur présence fortuite et d’en avertir l’utilisateur. Mais si ce
dernier intervertit deux aminoacides, il est impossible de s’en assurer, c’est pourquoi il n’est
pas possible de parer à toutes les éventualités. Ensuite, pour que l’utilisateur sache si ses
données ont été correctement entrées ou quelle a été son erreur, les informations sont
envoyées vers une nouvelle page HTML. Celle-ci affiche à l’écran un récapitulatif des valeurs
enregistrées ainsi que celles qui ont été calculées et ajoutées automatiquement dans le cas où
10
Foschiatti Franck
Rapport de stage
Avril-Août 2002
tout était correct. Dans le cas contraire, rien n’est rentré dans la base et la page indique
l’erreur commise ainsi que le moyen d’y remédier.
Figure 6 : Résultats
4) Modification des données
Cette option, assez similaire à l’ajout des données, se distingue de celle-ci d’une part
par la sélection du peptide à modifier, puis par l’affichage immédiat des données le
concernant. Ces dernières pourront donc être effacées et remplacées à convenance, et il sera
possible de remplir les cases omises, volontairement ou non, lors de la phase préalable de
l’ajout des données.
5) « Upload » d’un fichier Excel
La possibilité d’ajouter ses données par l’intermédiaire d’un fichier Excel enregistré
avec l’extension .csv est présente car les volumes de données à entrer en une fois peuvent être
11
Foschiatti Franck
Rapport de stage
Avril-Août 2002
importants. Par exemple, les chimistes peuvent synthétiser 80 peptides à la fois grâce à un
automate et souhaitent donc rentrer toutes leurs valeurs en une fois. En utilisant cette méthode
pour intégrer leurs nouvelles données à la base, cela automatisera ces actions. En effet,
jusqu’alors, chaque utilisateur devait apporter ou envoyer son fichier à la bioinformaticienne
qui s’occupait ensuite, manuellement, d’ajouter les données à la base. Ceci permettra donc un
gain de temps.
Figure 7 : « Upload » d’un fichier .csv
6) Bilan thématique
De la même façon, le bilan thématique pour un peptide donné est lui aussi
personnalisé en fonction du groupe, car chacun n’a pas les mêmes besoins, et les informations
doivent donc être différentes. Ce bilan comprend des caractéristiques chimiques et
biologiques regroupant toutes les informations nécessaires au manipulateur sur le peptide en
question pour qu’il puisse travailler. Ce traitement des données avait déjà été commencé sous
Access, mais il a fallu le reformuler entièrement pour qu’il puisse être affiché sous un format
HTML.
Il a néanmoins été demandé que chacun puisse avoir accès au bilan des autres groupes
dont certains résultats peuvent leur être utile. Ainsi, dans chacun des groupes, il est possible
de consulter les trois types de bilans qui ne présentent pas les même les résultats.
12
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Dans un premier temps, l’utilisateur a le choix entre un format imprimable ou non.
Puis, en choisissant une référence d’un peptide, l’utilisateur pourra visualiser un tableau qui
regroupe des données recueillies dans différentes tables de la base en fonction des exigences
des manipulateurs. La version non imprimable propose en plus la possibilité de sélectionner
une nouvelle référence d’un peptide appartenant à la même famille que le premier ou la
référence du JMIB source, c'est-à-dire la référence du « chef de famille », qui permet alors de
regrouper dans le même tableau l’ensemble des peptides de sa famille.
Enfin, dans le cas où certains tableaux n’auraient pas l’utilité d’être présents, tels les
renseignements sur le marquage ou la purification, qui n’ont de sens que si le peptide a subi
les expériences requises, ceux-ci ne s’affichent pas.
Figure 8 : Bilan de données bioinformatique
13
Foschiatti Franck
Rapport de stage
Avril-Août 2002
7) Changement de mot de passe
Enfin, l’utilisateur peut changer son mot de passe. En effet, il est conseillé, au niveau
sécurité des données, de changer régulièrement de mot de passe, cette page permet donc de
faciliter cette formalité.
Figure 9 : Changement de mot de passe
8) Architecture du site
Pour résumer l’ensemble du travail, voici en un schéma les liens des différents fichiers
utilisés.
14
Foschiatti Franck
Avril-Août 2002
Rapport de stage
Identification.php
Pagebilan.php
Bilan.php
Indexident.php
Retouraccueil.php
Consultation.php
Accueil.php
Password.php
Excel.php
Indexchimie.php
Données.php
Modif.php
Peptide2.php
Introsynthese.php
Synthese2.php
Synthese.php
Date.php
Purification2.php
Marquage2.php
Marquage.php
Newprotocole.php
Purification.php
Contenuprotocole.php
Figure 10 : Architecture des fichiers du groupe chimie
Le site est composé de ? fichiers, soit ? lignes de code.
Bien entendu, tout est étudié afin d’optimiser au mieux la sécurité du site.
15
Foschiatti Franck
Rapport de stage
Avril-Août 2002
La sécurité
La sécurité est un élément important à ne pas omettre lorsque l’on parle de bases de
données, d’autant plus lorsqu’elles ont une valeur financière à ne pas négliger. Il a donc fallu
parer à un maximum d’éventualités.
Le premier élément bien entendu est le serveur lui-même. Après en avoir discuté avec
l’administrateur réseau, les accès au serveur furent limités au maximum. Tous les ports sont
fermés mis à part le port 80 qui donne accès au http, mais il est restreint au sous-réseau local.
Le pare-feu intégré à Linux permet d’augmenter ces restrictions à dix machines seulement en
limitant l’accès du serveur aux adresses IP prérentrées. Une attaque extérieure est donc
physiquement impossible.
Ensuite, pour limiter les possibles attaques internes, un premier élément est la page
d’identification. Pour entrer sur le site, il est nécessaire d’avoir un login et un mot de passe.
Pour augmenter la protection, chaque utilisateur possède un bit d’accès fixé à 3. Il s’agit en
vérité d’un compteur qui sera décrémenté à chaque fois que le login entré par un utilisateur
sera identique à celui du compte en question et dont le mot de passe sera faux. Ainsi, quel que
soit le temps écoulé, si, pour un login donné, trois erreurs au niveau du mot de passe sont
signalées, le compteur alors à 0 bloquera l’accès au site. Néanmoins, si l’utilisateur entre le
bon mot de passe, le compteur retourne à 3. Dans le cas contraire, pour avoir de nouveau la
possibilité d’entrer dans le site avec ce login, l’utilisateur devra aller voir l’administrateur qui
pourra modifier la base de donnée et remettre le bit d’accès à 3. Cette méthode permet ainsi
d’échapper aux attaques types ‘dictionnaires’ et des attaques types ‘force brute’ par exemple,
qui choisissent un login et tentent tous les mots de passes possibles.
Le deuxième niveau de sécurité interne se fait via la page PHP qui traite toutes les
données, servant ainsi d’intermédiaire entre la base et les pages HTML. L’accès à la base
nécessite un mot de passe et un login. Chacun d’eux correspond à des comptes différents qui
possèdent des « privilèges » plus ou moins limités à la base en fonction des nécessités. S’il
s’agit seulement de lire des données dans la base, un accès en lecture seul suffit. Si
maintenant on souhaite ajouter des données dans la base, alors de nouveaux droits sont
nécessaires. D’une part, comme le site n’est accessible que par le groupe CAPS et d’autre
part, comme il n’est pas possible d’avoir accès aux pages en PHP, les comptes ayant accès à
la base sont donc protégés.
16
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Vient ensuite le problème d’un accès indirect à la base en passant par une page
différente de la page d’identification. Pour y remédier, il a été ajouté des fichiers .htaccess
dans chacun des répertoires contenant les pages HTML, mis à part la page d’identification qui
se trouve dans un répertoire parent. Lorsque quelqu’un essai de se connecter par une page
interne du site, une pop-up demande le login et le mot de passe qu’elle comparera avec les
données entrées dans un autre fichier : .htpassword. Ce fichier se trouve hors de
l’arborescence accessible par le site et est protégé en écriture. Les mots de passes sont cryptés
par un algorithme irréversible. Aussi, le mot de passe entré par l’utilisateur est codé par le
même algorithme et le résultat est comparé à celui contenu dans le fichier. Si l’utilisateur
passe par la page d’identification normale, la comparaison se fait automatiquement et la popup n’apparaît pas.
Le dernier niveau de sécurité se fait par l’intermédiaire de l’éducation des utilisateurs.
En effet, quel est l’intérêt de mots de passes si l’on quitte son ordinateur en le laissant sur le
site censé être protégé ? Quiconque passant alors après pourrait avoir accès aux données
confidentielles. Il est donc nécessaire que chacun prenne conscience de l’importance de la
sécurité, l’utilité d’un choix judicieux d’un mot de passe, … C’est d’ailleurs dans cette
optique qu’a été organisée une réunion afin d’inculquer quelques notions essentielles à la
sauvegarde de données confidentielles (voir annexe 1 : Rapport sur la sécurité).
17
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Conclusion
Ce stage aura été enrichissant sur de nombreux points. Tout d’abord, il m’a permis
d’appréhender le PHP, le HTML et MySQL. Le PHP est un langage assez proche du C, mais
il est plus tolérant et possède ses fonctions propres. Cette liberté d’action est parfois
appréciable, mais cela oblige à être beaucoup plus vigilant. Néanmoins, l’association entre le
PHP et le HTML permet de faire du travail qui je l’espère est de qualité et m’a ouvert la voie
de la création d’un site Internet. Il doit certes rester en interne, mais il m’aura donné la
possibilité de chercher des connexions entre le programme et la base de données. J’ai
également pu approfondir mes connaissances dans ce domaine, même si les requêtes utilisées
dans le programme sont assez simples, et cela m’a amené à exploiter certaines facettes du lien
entre le site et la base pour en augmenter la sécurité.
Il est évident que la protection des données était un thème récurent du stage. J’ai ainsi
pu étudier davantage sur ce sujet, d’une part en sécurisant le site et la base, et d’autre part en
organisant, avec l’aide de Karine Clavier, une réunion sur la sécurité informatique (voir
annexe). J’ai donc été confronté à certains choix tactiques quant à la protection du serveur et à
certains problèmes d’installations qui furent tous résolus.
Un dernier point important à noter est la gestion du temps. J’avais quatre mois pour
achever mon ouvrage et il n’est pas évident d’estimer avec exactitude le temps nécessaire à
accomplir un tel travail lorsque c’est la première fois, mais tout c’est bien passé puisque j’ai
terminé dans les temps.
Enfin, j’ajouterai que j’ai été baigné dans les résultats biologiques et chimiques ce qui
a excité une fibre scientifique. J’ai ainsi pu découvrir d’autres modes de réflexion et de
recherche et il m’a été donné d’observer les hommes et les machines à l’œuvre dans une cause
commune à la recherche et la synthèse de peptides actifs.
18
Foschiatti Franck
Rapport de stage
Avril-Août 2002
Résumé
Le stage s’est déroulé au Laboratoire des Aminoacides, Peptides et Protéines de Montpellier sur une
thématique développée en collaboration avec le laboratoire pharmaceutique IPSEN-Beaufour. Elle a pour but la
découverte de nouveaux ligands naturels actifs à fort potentiel, utilisés comme modèle pour la synthèse de
nouveaux médicaments qui miment ou bloquent leurs effets biologiques.
Dans ce contexte, ma mission a consisté en la conception et la réalisation d’un site qui permet la gestion
d’une base de données contenant les résultats scientifiques. Cela implique une certaine maîtrise de la
programmation fonctionnelle (PHP), conception graphique (HTML) et connaissance des bases de données
(MySQL). Il faut ajouter à cela la mise en place et la maintenance d’un serveur sous Linux et la recherche d’une
sécurité qui se doit d’être maximal, ce qui demande un certain savoir-faire au niveau système d’exploitation et
réseau. Une compréhension des résultats chimiques et biologiques facilitant l’adéquation entre les attentes des
scientifiques et le travail informatique, un savant dosage de ces multiples compétences permet ainsi de réaliser
un site intranet à l’aspect convivial, facile d’utilisation, alliant simplicité et sécurité.
Il faut voir en ce travail un programme fini mais évolutif selon les demandes des utilisateurs. Il est
évident qu’en fonction de leurs travaux, la base peut changer, le site doit donc suivre le même parcours. En
outre, un accès au site par l’extérieur du sous-réseau est impossible car le serveur n’est lié qu’à quelques
machines et ne possède pas de connexion Internet, l’ensemble étant protégé par des mots de passe. Ceci implique
une certaine sensibilisation du personnel à ce sujet ce qui nécessite un certain échange d’où l’intérêt d’une
réunion informative sur la sécurité. Voilà les raisons qui font de ce stage un projet aux nombreux attraits.
The traning period takes place in the “Laboratoire des Aminoacides, Peptides et Protéines” of
Montpellier on a thematic developped in collaboration with the IPSEN-Beaufour pharmaceutic laboratory. The
aim of this collaboration is the discovery of new active natural ligands with great potential used as model for the
synthesis of new medecines which mime or bloc their biologic effect.
In this context, my mission has been the conception and the realization of a scientific result database
management site. Actually, it require functionnal programming skill (PHP), graphical conception (HTML),
database knowledge (MySQL), the installation and maintenance of a Linux server and a maximum security level
which imply network and operating system abilities. An understanding of biologic and chemical results
facilitating the links between scientists’ expectations and the data processing, the good use of these large
amounts of skills allows the realization of a convivial aspect and easy to use intranet site which ally simplicity
and security.
This work is a finished program but may evolve in function of the users’ requests. With the evolution of
their works, the database can change and the site must follow the same way. Moreover, an access to the site by
an external position from the under-network is impossible, because the server is linked with only a small number
of computers and do not have Internet connection. The whole system is protected by passwords. This must
involve the employees’ sensitization to this topic hence the importance of an informative meeting on the
security. These are the reasons which prove that this work is a project with numerous appeals.