|
Afin de réaliser notre application la plus générique
possible nous avons déterminé que le langage à utiliser devait posséder les
qualités suivantes :
·
Etre approprié à Internet (être exécutable à partir
d’un serveur afin de générer du code Html/Wml lisible par tous les
navigateurs).
·
Etre portable (le même code doit être utilisable
sur plusieurs plate-forme sans nécessairement être modifié).
·
Avoir un code le plus lisible possible (facilitant
ainsi sa compréhension par des personnes tiers).
·
Avoir un code au maximum réutilisable (ce que
permet de faire une programmation à objets).
·
Etre compatible avec le maximum de serveur et le
maximum de moteur de base de données.
Très rapidement nous nous sommes aperçus que
principalement quatre langages étaient appropriés à Internet : les CGI
(common gateway interface) et trois langages de scripts Perl , Asp (active
server pages) et Php (personal home pages).
Une étude rapide de ses 4 langages nous a permis de nous
rendre compte que seul les langages de scripts PHP et ASP pouvaient satisfaire
nos exigences.
En effet les CGI sont des composants exécutables (exe,
dll) s’exécutant sur un serveur. Ils permettent d’écrire dans des fichiers
d’accéder à des bases de données ou de générer du code HTML à envoyer au
navigateur. Mais contrairement aux langages de scripts ils sont compilés ainsi
leurs sources ne sont pas lisibles, et ils sont spécifiques à la plate forme
pour laquelle ils ont été compilé. Ces 2 propriétés limiteraient la portabilité
et la réutilisation de notre application et pour cela nous avons orienté notre
choix vers un langage de script.
Le langage Perl est un langage de script très semblable à
Php et ASP cependant il propose moins de fonctionnalités et le code des scripts
qu’il permet d’écrire est beaucoup moins lisible que ceux de ses deux langages.
Ainsi nous ne l’avons pas retenu.
Le choix entre PHP (Personal home page) et ASP ( Active
server pages (technologie Microsoft mais cependant gratuite)) nous a posé plus
de difficultés en raison de leur forte similitude. Néanmoins nous avons préféré
PHP à ASP car PHP propose un éventail de fonctions nettement supérieur (plus de
500 fonctions). Ainsi la longueur des codes est diminuée et la lisibilité des
scripts est augmentée. Et contrairement à ASP il implémente la programmation
orientée objet, gère en standard le File Upload, implémente les expressions
régulières.
De plus, PHP ne fonctionne pas seulement avec les serveurs
PWS et IIS mais également apache... PHP gère également en accès natifs outre
ODBC de nombreux SGBD: Oracle, Sybase, Informix, mySQL, Adabas, Empress,
FilePro, InterBase, mSQL, PostgreSQL, Solid, SQLServer, Unix Dbm.
Il s’agit d’un langage de script par conséquent c’est un
langage interprété. Cette propriété rend son exécution plus lente qu’un langage
compilé mais lui permet d’être extrêmement portatif. Il est pourvu d’une
quantité considérable de fonctions, contenu dans des librairies.
Il offre ainsi la possibilité, de traiter les réponses
d’un utilisateur fourni dans un formulaire, de générer des fichiers PDF ou des
images GIF, et propriété très importante de gérer les résultats de calculs ou
requêtes SQL dynamiquement.
Sa syntaxe est proche de celle du langage C (boucles
« for » « while » opérateurs booléens
« && »« || » …). Il offre également des
possibilités de programmation objet.
Deux remarques importante :
o
Son code peut être directement inclut dans du code HTML.
o
Il est exécuté côté serveur ainsi le client n’a pas
accès a son code (contrairement au javasript).

Concernant le serveur http nos critères de choix étaient
la gratuité du serveur et sa compatibilité avec Php et SSL ( mécanisme de
sécurisation des payements électronique ). Pour cela nous avons choisi le
serveur apache.
Remarque : le serveur apache est la référence en
matière de serveur http (selon une étude de la société Netcraft il est utilisé
par 58.75% des sites Web). De plus son nom vient du fait qu’il est constitué
d’un noyau auquel on peut ajouter des modules (patches). Ainsi nous allons
pouvoir lui ajouter un module SSL et un module PHP.
Résultats du sondage de la société Netcraft :
|
Serveurs
|
Nombre
de sites (janv-2001)
|
Pourcentage
|
|
Apache
|
16207982
|
58.75
|
|
Microsoft-IIS
|
5901507
|
21.39
|
|
Netscape-Enterprise
|
1733097
|
6.28
|
|
WebLogic
|
1004571
|
3.64
|
|
Zeux
|
693684
|
2.51
|
|
Rapidsite
|
371441
|
1.35
|
|
Thttpd
|
343172
|
1.24
|
|
Tigershark
|
150937
|
0.55
|
|
AOLserver
|
127980
|
0.46
|
|
WebSitePro
|
113480
|
0.41
|
PHP supporte de nombreux SGBD: Oracle, Sybase, Informix,
mySQL, Adabas, Empress, FilePro, InterBase, mSQL, PostgreSQL, Solid, SQLServer,
Unix Dbm.
Or comme nous voulions un SGBD gratuit notre choix se
limitait aux SGBD : mSQL, PostgreSQL, mySQL. Notre choix s’est arrêté sur
mySQL pour les raisons suivantes :
MySQL est interfaçable avec de nombreux langages comme C,
C++, Perl, PHP ou Python.
MySQL sauvegarde chaque table de la base dans un fichier
spécifique du répertoire de la base. La taille maximale d'une table peut se
situer entre un minimum de 4 Go et les limites du système d'exploitation.
MySQL est environ trois à quatre fois plus rapide que de
nombreuses base de données commerciales. MySQL est aussi très facile à gérer
grâce à l'utilitaire mysqladmin.
MySQL est une base de données Open Source et GPL. Il est
distribué librement sur les systèmes UNIX et OS/2. Par contre, sous Windows, il
vous faut souscrire une licence.
Néammoins MySQL n’est pas sans défaut ainsi on peut
regretter que :
MySQL ne supporte pas les requêtes
imbriquées (la version 3.24 devrait en être pourvu).
MySQL ne supporte pas les
transactions : une transaction est une unité logique de travail qui
contient une ou plusieurs blocs SQL executés par un utilisateur. Une
transaction se termine lorsqu'elle est explicitement arrétée par l'utilisateur.
En SQL classique, une transaction commence par un COMMIT et se termine par un
ROLLBACK.
MySQL ne dispose pas de la notion de
clefs étrangères : dans une base de données relationnelles, les
identifiants (clefs primaires) d'une table se retrouvent en clefs étrangères
d'une autre table en relation avec la première. Ce système de clefs primaires
et clefs secondaires permet d'assurer l'intégrité des données
MySQL ne dispose pas de la notion de vues : une vue est une
présentation des données contenues dans une ou plusieurs tables (ou d'autres
vues). Une vue prend le résultat d'une requête et le traite comme si c'était
une table. C'est pourquoi une vue peut aussi porter le nom de "Requête
sauvée" ou "Table virtuelle".
Les clients adhérant à notre coopérative de location de cassettes
doivent lors de leur inscription indiquer leur numéro de carte de crédit ainsi
que sa date d’expiration afin de pouvoir verser un capital à la coopérative qui
est débitée a chacun de leurs emprunts.
Il apparaît alors un certain nombre de problèmes de
sécurité (liés aux modalités de payement) que l’on retrouve de manière
récurrente dès que l’on souhaite réaliser du commerce électronique, voici une
liste non exhaustive de ses risques :
|
Risque
|
Besoin
|
|
Fraude
de la part du commerçant (modification du montant à débiter).
|
Intégrité
des données
|
|
Fraude
de la part d’un tiers (interception et utilisation des informations de la
carte de crédit).
|
Confidentialité
|
|
Fraude de la part du client (il utilise une carte de
crédit qui n’est pas à lui).
Fraude
de la part du commerçant (il vend du vent sous une fausse identité).
|
Authentification
|
|
Fraude
de la part du client (il conteste, à tort, une commande qu’il a passée).
|
Non
répudiation
|
|
Fraude
de la part du client (il a un découvert)
|
Assurance
de paiement au commerçant
|
Rien n’est codé et il n’y a aucun mécanisme de
sécurisation. Dans ce cas toutes les fraudes sont possibles.
Ce protocole créé par Netscape est le plus utilisé
aujourd’hui. Ceci provient sûrement du fait de sa simplicité d’utilisation
(transparent pour l’utilisateur) et qu’il est intégré dans tous les navigateurs
du marché (IE , Netscape …).
On peut s’apercevoir que l’on est dans une communication
sécurisé (SSL) de la manière suivante (pour IE5):dans la barre d’adresse,
‘http’ est remplacé par ‘https’: et dans la barre d’état, un
cadenas apparaît: 
Les échanges sur le réseau sont codés par un algorithme
RSA à clefs. Mais cela ne garantie en rien une éventuelle fraude de la part du
commerçant ou un éventuel refus de paiement de la part du client.
Ce protocole a été mise en service en 1996 par Visa et
Mastercard (sociétés de carte de crédit).
C’est maintenant un standard international de sécurisation
avec codage de l’information : cryptage des références de la carte de
crédit, certification digitale des acteurs et signature digitale des messages.
Cependant SET tarde à se développer vraiment car il est
empêtré dans des problèmes de lourdeur de déploiement et d’interopérabilité
insuffisante des différentes offres logiciels (Tandem/Compaq, IBM, Verifone/HP,
Money/Microsoft).
Le protocole C-SET (Chip Secure Electronic Transaction)
est une extension du protocole SET.
Ce protocole a été développé par les banques françaises en
mettant à profit leur longue expérience d’un lecteur de carte connecté au
Minitel.
C-SET nécessite un dispositif matériel PINpad (lecteur de
carte) dont de plus en plus de téléphone Wap sont équipés.
Ce procédé permet d’augmenter la sécurité de SET:
Authentification de la carte (vérification matériel).
Authentification du détenteur de la carte (basée sur la
vérification du code PIN par le microprocesseur de la carte).
§
Authentification du marchand.
§
Intégrité de la transaction.
§
Confidentialité des données sensibles.
Avec C-SET le paiement est garanti au vendeur, et aucun
enregistrement préalable n’est exigé, que se soit pour le détenteur de la carte
ou pour le commerçant.
|
|
En clair
|
SSL
|
SET
|
C-SeT
|
|
Intégrité
des données
|
L
|
L
|
J
|
J J
|
|
Authentification
|
L
|
L
|
J
|
J J
|
|
Non
répudiation
|
L
|
L
|
J
|
J J
|
|
Assurance
de paiement pour le commerçant
|
L
|
L
|
J
|
J J
|
|
Confidentialité
|
L
|
J L
|
J
|
J J
|
|
Simplicité
d’utilisation
|
J J
|
J J
|
J
|
J
|
|
Simplicité
de mise en œuvre
|
J J
|
J J
|
L
|
J
|
|
Performances
|
J J
|
J J
|
L L
|
J
|
Pour notre application nous nous contenterons du protocole
SSL. En effet compte tenu du fait que notre application n’est qu’une simulation
il ne nous est pas apparu indispensable d’utiliser un dispositif aussi lourd
que SET ou C-SET.
Les adhérents à notre coopérative ont la possibilité de
déposer et ainsi de rendre accessible des pages persos sur notre site (articles
sur : des acteurs, des films, des techniques d’effets spéciaux, des photos
de tournages de films).
Or comme le sujet de leur pages est totalement libre et
qu’une même page peut concerner plusieurs sujets. il nous a semblé non
envisageable de concevoir un annuaire thématique de ses pages.
Par conséquent nous avons décidé à la manière d’un moteur
de recherche d’indexer ses pages.
Pour cela nous avons utilisé le moteur d’indexation
Swish-e. Ce programme permet de générer un fichier d’index sur le contenu des
documents d’un répertoire. Une fois ce fichier créé on peut soumettre au
programme des requêtes et il nous renvoie la liste des documents correspondant
aux mots recherchés.
Les langages permettant de mettre en page un site web sont
au nombre de trois le Xml, le Html et le Xhtml. Il s’agit de trois langages de
description et de formatage de document fonctionnant à l’aide de balises.
Xml est le plus ancien des trois mais il n’est pas reconnu
par tous les navigateurs (browser). De plus il ne permet que très difficilement
d’afficher des images et aucune balise n’est défini en standard (elles sont
toutes à définir).
Le Html est le langage le plus utilisé. Il est beaucoup
plus souple que Xml ainsi il autorise de ne pas fermer certaines balises, le
nom des balises peut être écrit en minuscules ou en majuscules. De plus
contrairement au Xml il permet très facilement d’afficher des images, tous les
navigateurs le reconnaissent, et toutes les balises utilées sont définies en
standard (il n’est pas possible d’en définir de nouvelles mais par
l’intermédiaire de feuilles de style on peut les modifier).
Le Xhtml est une extension du HTML qui, en outre, reprend
les caractéristiques les plus intéressantes du XML : rigueur pour la
fermeture des balises, possibilité de définir de nouvelles balises...
Pour notre application compte tenu de sa souplesse nous
utiliserons le Html.
JavaScript est comme son nom l'indique un langage de
script. Mais contrairement au langage PHP il est interprété du côté client.
Cette propriété permet une exécution très rapide mais il y a un revers de la
médaille : son code est visible et très facilement modifiable par le client, ce
qui n'ait pas sans poser des problèmes de sécurité.
Sa syntaxe est semblable a celles des langages C,C++ et
Java, son code s'intègre directement dans les pages html, il est orienté objet.
Son principale atout est qu'il permet de résoudre des problèmes que HTML ne
sait pas résoudre, ainsi il sait gérer les évènements principaux de la souris (
déplacements, clicks , etc..) et permet d'afficher des fenêtres modales et
d'effectuer des temporisations.
Pour notre application nous allons utiliser Javascript
essentiellement pour vérifier la validité des informations saisies par les
utilisateurs dans les formulaires. Ainsi pour chacun de nos formulaires les
utilisateurs verrons apparaître des boîtes d'avertissements leur signalant
leurs erreurs de saisies.
Un cookie est une chaîne de caractères enregistrée dans un
fichier texte sur votre disque dur, à un endroit précis qui lui est réservé. Le
fichier est créé par le site web visité via le navigateur. La durée de vie du
cookie est déterminée dès sa création via une date d'expiration. Les cookies
permettent aux webmasters, après étude, de calculer la fréquence des visites,
le temps passé sur une page, le chemin suivi lors de la visite du site.
Remarque : La légende du cookie espion est en partie
dépassée et exagérée. Il faut savoir qu'il y a plus de risque d'accepter le
Javascript, les applets Java ou les ActiveX que les cookies. Malgré cela comme
pour ces différentes solutions l'utilisation des cookies est dépendante de la
configuration du navigateur, ce qui peut être un handicap.
Pour notre application nous allons utiliser les cookies
afin que les utilisateurs n'aient pas à ressaisir leur mot de passe a chaque visite
du site web. Ainsi après une première identification réussie a chaque fois
qu'ils reviendrons sur notre site leurs paramètres personnels seront
automatiquement activés.
Pour notre site Wap nous n’avons pas eu l’embarras du
choix car il n’existe qu’un langage de mise en page qui est le WML (il est basé
sur le XML). Son code est aussi stricte que le Xml (sensible à la case, balise
fermante obligatoire, attributs à ne pas oublier) néanmoins il est moins
puissant. Le WML possède son propre langage de script le WMLScript, et permet
l’affichage d’images.
Le WML n’est pas visible par un navigateur courant
(Internet explorer ou netscape navigator) et comme nous ne disposions pas de
téléphone wap nous avons utilisé un émulateur.
|