Annexe C
Cette annexe présente quelques détails
d'implémentation sur les fonctionnalités utilisées dans le
système proposé à savoir : l'utilisation des bases de
données, les fonctions cryptographiques, la manipulation des cookies
ainsi que la bibliothèque « JWebBrowser »
utilisé pour implémenter le navigateur java.
1. Mode d'utilisation MySQL :
Création d'une table :
CREATE TABLE FilmSimple
( t i t r e VARCHAR (30) ,annee
INTEGER,n o m _ r e a l i s a t e u r VARCHAR
(30) ,p r e n o m _ r e a l i s a t e u r VARCHAR
(30) ,annee_naissance INTEGER) ;
Insertion des données :
INSERT INTO Fi lmSimple ( t i t r e , annee ,
p r e n o m _ r e a l i s a t e u r ,n o m _ r e a l i s a t e u r )
VALUES ( ' Pulp F i c t i on ' , 1995 , 'Quentin ' , ' Tarant
ino ' ) ;
Interrogation et modification :
SELECT t i t r e , annee FROM
FilmSimple
WHERE annee > 1980 DELETE FROM FilmSimple
WHERE annee <= 1960 UPDATE FilmSimple SET
n o m _ r e a l i s a t e u r= 'Wu' , p r e n o m _ r e a l i s a t e
u r= ' Yusen ' WHERE n o m _ r e a l i s a t e u r = 'Woo '
Quelques commandes utiles :
SELECT DATABASE(); C'est une pseudo-requête SQL (sans FROM)
qui affiche le
nom de la base courante.
SELECT USER(); Idem, cette pseudo-requête affiche le nom de
l'utilisateur courant.
SHOW DATABASES; Affiche la liste des bases de données.
SHOW TABLES; Affiche la liste des tables de la base courante.
SHOW COLUMNS FROM NomTable ; Affiche la description de
la table NomTable.
75
Les fonctions principales PHP/MySQL :
2. Mode d'utilisation PHP :
Les sessions :
session_start(); // Initialise les informations de session. Si
aucune session n'existe, un
identifiant est engendré et transmis dans un
cookie. Si la session (connue par son
identifiant) existe déjà, alors la fonction
instancie toutes les variables qui lui sont liées.
Cette fonction doit être appelée au début de
tout script utilisant les sessions (il faut que
l'instruction Set-Cookie puisse être placée dans
l'en-tête HTTP).
$_SESSION['user']=$_POST['pseudonyme']; //nome de session
user.
Session_id() ; // Renvoie l'identifiant de la session.
session_unset(); // supprimer tout les variable de la session.
session_destroy(); // Détruit toutes les informations
associées à une session..
la fonction de cryptage :
function encrypt($data) {
$key = $_POST['pseudonyme']; // Clé de session à 8
caractères au maximum
$data = serialize($data);
$td = mcrypt_module_open(MCRYPT_DES,"",MCRYPT_MODE_ECB,"");
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),
MCRYPT_RAND);
mcrypt_generic_init($td,$key,$iv);
76
$data = base64_encode(mcrypt_generic($td, '!'.$data));
mcrypt_generic_deinit($td);
return $data;
}
Fonction de décryptage :
function decrypt($data) {
$key = $_POST['psudo'];
$td = mcrypt_module_open(MCRYPT_DES,"",MCRYPT_MODE_ECB,"");
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),
MCRYPT_RAND);
mcrypt_generic_init($td,$key,$iv);
$data = mdecrypt_generic($td, base64_decode($data));
mcrypt_generic_deinit($td);
if (substr($data,0,1) != '!')
return false;
$data = substr($data,1,strlen($data)-1);
return unserialize($data);
}
Les cookies :
Créer un cookie avec PHP
int setcookie ( string name [, string value [, int expire [,
string path [, string domain [, int secure]]]]]) ;
<?php setcookie('cookie_name', 'blablabla', (time() + 3600));
?>
Lecture d'un cookie
<?php /* Les trois exemples suivants afficheront tous
"blablabla" */
echo $cookie_name; // exemple 1 (si registar_globals est à
on dans php.ini)
echo $HTTP_COOKIE_VARS['cookie_name']; // exemple 2
echo $_COOKIE['cookie_name']; // exemple 3 (si on est sur PHP
4.1.0 ou plus)
?>
Détruire un cookie
<?php /* Les deux exemples suivants sont
équivalents*/
setcookie('cookie_name'); // exemple 1
setcookie('cookie_name', ", 1); // exemple 2
?>
Connection au base des données
<?php
$conn = mysql_connect("localhost","root",""); $db =
mysql_select_db("myid",$conn);
?>
Extraction des données de page d'inscriptions
$pseudonyme = $_POST['pseudonyme'];
$pw1 = MD5( $_POST['pw1']); //mot de passe crypté (inconnu
même par le FI)
$pw2 = MD5($_POST['pw2']); $nome = $_POST['nome'];
$prenome = $_POST['prenome']; $email = $_POST['email']; $langage
= $_POST['langage']; $payes = $_POST['payes']; $ville = $_POST['ville'];
$codezip = $_POST['codezip']; $gendre = $_POST['gendre']; $age =
$_POST['age'];
Insertion des données dans la base
MySQL
$sql
77
= "INSERT into users values('".$pseudonyme."','".
$pw1."','".$nome."','".$prenome."','".$email."','".$langage."','".$payes."','".$ville."','".$co
dezip."','".$gendre."','".$age."')";
$qury = mysql_query($sql);
Vérification des données à la page
d'dentifications
$pseudonyme=$_POST['pseudonyme']; $pw=MD5($_POST['pw']);
$sql="select count(*) from users where(
pseudonyme='".$pseudonyme."' and pw='".$pw."')";
$qury=mysql_query($sql);
$result=mysql_fetch_array($qury);
78
3. Mode d'utilisations JWebBrowser au
NetBeans
On à utilisé les bibliothèques suivantes :
DJNativeSwing-SWT.jar
swt-debug.jar
Le codes qui manipule le browser ce sont intégré
à les bibliothèques précédents ce que nous
intéressé sont les actions additionnelles qui offrir la
sécurité entre les FSs et les FIs.
Création d'une liste des fournisseurs
d'identité : final JComboBox combox=new JComboBox();
combox.addItem("");
combox.addItem("myId");
combox.addItem("OpenId");
combox.addItem("PseudoId");
Ajouté la liste des fournisseurs d'identité
à la barre de JWebBrowser buttonBar.add(combox);
Création d'un bouton de choix de fournisseur
d'identité final JButton button = new JButton("IdPs");
button.setForeground(Color.BLACK);
button.setFont(new Font("sansserif",Font.BOLD,12));
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { // Les codes qui
concerne ce bouton
}
La même chose pour le bouton de confirmation des
données authentifié par le FI.
.ÉíæåáÇ
|
ÑííÓÊ
|
ãÇÙä
|
ÉíãÞÑáÇ
ÉíæåáÇæ
ÉíÕæÕÎáÇ
ÉíÇãÍ
ÈíæáÇ
ÊÇãÏÎ
|
:
|
ÍíÊÇãáÇ
ÊÇãáßáÇ
|
|