Pages Web dynamiques et bases de données

Dimension: px
Commencer à balayer dès la page:

Download "Pages Web dynamiques et bases de données"

Transcription

1 Cours 2 Pages Web dynamiques et bases de données Une page Web dynamique est générée automatiquement grâce à l exécution d un script (PHP par exemple). C est le résultat de l exécution de ce script (code HTML) qui est renvoyé par le serveur au client. Pour générer ce code HTML, le script peut avoir besoin de données qui sont stockées en dehors du script, notamment dans des bases de données. Dans ce cas, lors de l exécution du script, l interpréteur PHP interrogera la base de données via des requêtes SQL et utilisera les informations renvoyées pour générer le code HTML. Le processus de génération de pages Web dynamiques peut être représenté par la figure 2.1. Figure 2.1 Schéma de requête en PHP avec accès à une base de données Remarque : Lors de l exécution d un script, il peut y avoir plusieurs requêtes SQL. Les bases de données d un site Web vont pouvoir stocker des informations utiles pour ce site. La base de données d un forum va stocker tous les messages postés. Pour un site marchand, la base de données contiendra la liste des clients/fournisseurs/marchandises. Dans le cas d un moteur de recherche, la base contiendra les informations extraites de toutes les pages indexées. Dans ce chapitre, nous expliquerons comment, dans un script PHP, se connecter à une base de données et interroger cette base. Pour cela, nous utiliserons la librairie PDO qui permet de se connecter à n importe quel type de base de données. L utilisation de cette librairie se faisant à l aide d un objet prédéfini, nous commencerons ce cours par une introduction rapide à la programmation objet en PHP. 21

2 I.U.T. de Villetaneuse 2.1 Programmation orientée objet en PHP Le langage PHP possède une couche objet dont la syntaxe est très proche de celle du langage JAVA. Le langage PHP implémente donc les classes, l héritage, les interfaces, etc. Le but de cette partie n est pas de savoir programmer en orienté objet en PHP mais de donner un rapide aperçu sur la création de classes, l instanciation de classes et l appel de méthodes. Les personnes souhaitant acquérir une connaissance plus approfondie sur la programmation orientée objet en PHP pourront trouver des cours et tutoriels sur le Web 1. La définition d une classe se fait à l aide du mot-clé class suivi du nom de la classe. Les accolades qui suivent contiennent alors les attributs (précédés du symbole $) et méthodes de cette classe. Chaque attribut ou méthode est précédé du mot-clé public, protected ou private suivant qu il soit publique, protégé ou privé. Rappel : Un attribut (ou méthode) est publique s il est accessible partout dans le programme. Il est privé (respectivement protégé) s il est accessible uniquement à l intérieur de la classe (respectivement à l intérieur de la classe et des ses descendants). Pour accéder aux attributs d un objet, on utilise la syntaxe $objet->attribut. À l intérieur d une méthode, $this fait référence à l objet sur lequel est appelée la méthode. Les attributs ou méthodes statiques (appartenant à une classe et non à un objet) sont précédés du mot clé static. Pour accéder à ces attributs ou méthodes, il faut faire précéder le nom de la méthode ou de l attribut par le nom de la classe suivi de "::". De la même manière, les constantes dans une classe sont définies à l aide du mot-clé const et sont accessibles de la même manière que les attributs statiques. Voici un exemple de définition et d utilisation d une classe en PHP. 1 <?php 2 class Joueur 3 { 4 public $login; 5 private $score; 6 const NOM_JEU = "Tarot"; 7 8 public function construct($ch,$ent) 9 { 10 //Teste si la valeur $ent correspond à un entier 11 if (((string) $ent) === ((string)(int) $ent)) 12 $this ->score = $ent; 13 else 14 $this ->score = 0; if (trim($ch)!= ) 17 $this ->login = $ch; 18 else 19 $this ->login = anonymous ; 20 } public function score() 23 { 24 return $this->score; 25 } 26 public function gagne($score) 27 { 28 if (((string) $score) === ((string)(int) $score)) 29 $this ->score += $score; 30 } 1. par exemple 22

3 Département informatique 31 } 32 echo <p>jeu :. Joueur::NOM_JEU. </p> ; 33 $j1 = new Joueur( sky,33); 34 $j2 = new Joueur( Dark,755); 35 $j1->gagne(180); 36 echo <p> Scores :. $j1->login. a. $j1->score(). points <br/> ; 37 echo $j2->login. a. $j2->score(). points. </p> ; 38?> L exécution du code précédent affichera : 1 Jeu : Tarot 2 3 Scores : sky a 213 points 4 Dark a 755 points. Remarque : Le constructeur d une classe est la méthode construct. 2.2 PHP et bases de données L accès aux bases de données dans un script PHP se fait à l aide de la librairie PHP Data Objects 2 (PDO). Cette librairie implémente une interface entre PHP et n importe quel système de gestion de base de données (SGBD) tel que Oracle, MySQL ou PostgreSQL. L utilisation de la librairie PDO présente plusieurs avantages : elle permet d interroger une base de données quel que soit le SGBD. Le fait de changer de SGBD nécessite de modifier une seule ligne de code dans le script PHP. elle facilite l utilisation des requêtes préparées 3 permettant de créer des requêtes plus sécurisées. Les requêtes préparées sont des requêtes SQL qui se déroulent en deux temps. La requête est tout d abord préparée par le SGBD, c est-à-dire analysée et optimisée. La requête est ensuite exécutée, c est-à-dire que la base de données est interrogée et les résultats envoyés au script PHP. Les requêtes préparées peuvent contenir des marqueurs de place (paramètres) dont la valeur est donnée au moment de l exécution de la requête. Les requêtes préparées permettent d accélérer l interrogation de la base de données si une requête préparée est exécutée plusieurs fois (elle ne sera préparée qu une seule fois). De plus, l utilisation des marqueurs permet une sécurisation de la base de données en diminuant le risque d attaque par injection SQL Connexion à la base de données L accès à la base de données se fait à travers l utilisation d un objet de la classe PDO. La connexion se fait lors de la construction de cet objet. Le constructeur prend en paramètre 3 valeurs (string) : le DSN, le login et le mot de passe 4. Le paramètre Data Source Name (DSN) est une chaîne de caractères contenant les informations requises pour se connecter à la base. Il est constitué du nom du pilote PDO (nom du SGBD), suivi d une syntaxe spécifique précisant le serveur où se situe la base de donnée ainsi que le nom de cette base. À titre d exemple, si la base de données (SGBD MySQL) s appelle bdcours et se trouve sur le serveur local, et si les login et mot de passe sont respectivement utilisateur et code, alors la création de l objet PDO permettant la connexion à la base se fait selon l instruction : 2. Il existe d autres moyens d accéder à une base de données mais qui deviennent obsolètes par rapport à PDO. 3. Il existe d autres méthodes pour interroger la base de données qui ne sont pas décrites dans ce cours. 4. Les deux derniers paramètres sont optionnels. 23

4 I.U.T. de Villetaneuse 1 $db = new PDO( mysql:host=localhost;dbname=bdcours, utilisateur, code ); Si la connexion à la base de données échoue, il est clair que le script PHP ne pourra pas fonctionner correctement puisque les requêtes SQL ne pourront être effectuées. Il faut donc dans ce cas arrêter le script PHP. Le langage PHP gérant les exceptions, en cas de problème, la connexion à la base de données lèvera une exception qu il est préférable d attraper. Ainsi, la connexion se fera selon la syntaxe : 1 try 2 { 3 $db = new PDO( mysql:host=localhost;dbname=bdcours, utilisateur, code ); 4 } 5 catch (PDOException $e) 6 { 7 // On termine le script en affichant le n de l erreur ainsi que le message 8 die( <p> La connexion a échoué. Erreur[.$e->getCode(). ] :.$e->getmessage(). </p> ); 9 } Important : Il ne faut se connecter qu une seule fois à la base de données. Il est donc conseiller d écrire le code précédent dans un fichier à part, par exemple connexion.php. Chaque script PHP utilisant la base de données commencera alors par l instruction require_once( connexion.php );. Ceci permet en plus de marquer vos login et mot de passe uniquement dans le fichier connexion.php (que vous ne montrez à personne) et non pas dans tous vos scripts PHP. Remarque : Il faut également ajouter juste après l instanciation de l objet PDO (dans le bloc try) les instructions 1 $bd->query( SET NAMES utf8 ); 2 $bd-> setattribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); La première instruction indique que le script PHP communique avec la base de données en utf-8. La seconde indique qu en cas d erreur, une exception doit être levée Interrogation de la base de données La préparation d une requête se fait via la méthode prepare de la classe PDO. Cette méthode prend en paramètre une requête SQL (sous la forme d une chaîne de caractères) et retourne un objet de la classe PDOStatement correspondant à la requête optimisée. En cas d erreur lors de la préparation, une exception PDOException est levée. La requête est ensuite exécutée grâce à la méthode execute de la classe PDOStatement. Elle s applique à l objet retourné par la méthode prepare. En cas d erreur, une exception est également levée. La récupération de la réponse d une requête se fait via la méthode fetch. Celle-ci retourne l enregistrement suivant (ligne suivante) du résultat de la requête, ou false en cas d erreur. Le type retourné dépend de la valeur passée en paramètre de la méthode fetch : PDO::FETCH_ASSOC : la valeur retournée est un tableau associatif. Les clés sont les noms des colonnes dans la requête et les valeurs celles de l enregistrement. PDO::FETCH_NUM : les clés associées aux valeurs sont les indices des colonnes de la requête. PDO::FETCH_BOTH : le tableau retourné contient deux fois chaque valeur. Les clés sont les noms et les indices des colonnes de la requête (le tableau correspond à l union des deux premiers tableaux). C est la valeur par défaut. PDO::FETCH_OBJ : la valeur retournée est cette fois-ci un objet. Les noms des attributs sont les noms de colonnes de la requête, les valeurs de ces attributs étant les valeurs de l enregistrement. 24

5 Département informatique Voici un exemple d interrogation d une base de données. Supposons que l on ait la table Personnes contenant comme premiers enregistrements les lignes suivantes. Nom Grappe David Borne Toulouse Prenom Roland Julien Sylvie Sophie L exécution du code 1 try 2 { 3 $req = $bd->prepare( SELECT Nom, Prenom FROM Personnes ); 4 $req->execute(); 5 $tab = $req->fetch(pdo::fetch_assoc); 6 echo <p> Nom :. $tab[ Nom ]. et prénom :. $tab[ Prenom ]. </p> ; 7 $tab = $req->fetch(pdo::fetch_num); 8 echo <p> Nom :. $tab[0]. et prénom :. $tab[1]. </p> ; 9 $tab = $req->fetch(pdo::fetch_both); 10 echo <p> Nom :. $tab[0]. et prénom :. $tab[ Prenom ]. </p> ; 11 $obj = $req->fetch(pdo::fetch_obj); 12 echo <p> Nom :. $obj->nom. et prénom :. $obj->prenom. </p> ; 13 } 14 catch(pdoexception $e) 15 { 16 die( <p> Erreur[.$e->getCode(). ] :.$e->getmessage(). </p> ); 17 } affichera alors 1 Nom : Grappe et prénom : Roland 2 Nom : David et prénom : Julien 3 Nom : Borne et prénom : Sylvie 4 Nom : Toulouse et prénom : Sophie Lors du premier appel, fetch retourne le tableau correspondant à la première ligne de la table Personnes. Comme la valeur PDO::FETCH_ASSOC est passée en argument, le tableau retourné est 1 Array 2 ( 3 [Nom] => Grappe 4 [Prenom] => Roland 5 ) Lors du deuxième appel, fetch retourne les informations correspondant à la deuxième ligne de la table car à chaque appel, fetch passe automatiquement à la ligne suivante. Comme PDO::FETCH_NUM est passé en paramètre, la valeur retournée est 1 Array 2 ( 3 [0] => David 4 [1] => Julien 5 ) Le tableau retourné par le troisième appel est 1 Array 2 ( 3 [Nom] => Borne 25

6 I.U.T. de Villetaneuse 4 [0] => Borne 5 [Prenom] => Sylvie 6 [1] => Sylvie 7 ) Lors du 4ème appel, l objet retourné contient deux attributs nom et prénom dont les valeurs sont respectivement Toulouse et Sophie. Pour afficher tous les résultats d une requête, il faut donc appeler la méthode fetch autant de fois qu il y a de lignes dans la réponse de la requête SQL. Il faut donc utiliser une boucle. Pour cela, on utilise le fait que la méthode fetch retourne false en cas d erreur, notamment s il n y a plus d enregistrement. L affichage de tous les personnes de la table se fait alors de la manière suivante : 1 //Préparation et exécution 2 while($rep = $req->fetch(pdo::fetch_assoc)) 3 { 4 echo <p> Nom :. $rep[ Nom ]. et prénom :. $rep[ Prenom ]. </p> ; 5 } Marqueurs de place Les marqueurs de place permettent de marquer des endroits dans la requête SQL qui seront remplacés par des valeurs au moment de l exécution de cette requête. Les marqueurs permettent donc d exécuter plusieurs fois un même requête avec des valeurs de marqueurs différentes. De plus, lorsque les valeurs des marqueurs sont utilisés pour insérer dans la requête SQL des valeurs saisies par l utilisateur, ils permettent de sécuriser la base de données des attaques par injection SQL. Dans une requête SQL, un marqueur de place a un nom précédé du symbole ":". Avant l exécution de la requête, il faudra alors donner une valeur à tous les marqueurs de place contenus dans la requête, grâce à la méthode bindvalue. Cette méthode prend en paramètre un nom de marqueur et sa valeur 5. Voici un exemple de requête préparée avec des marqueurs de place 6 : 1 $couleur = rouge ; 2 $req = $bd->prepare( SELECT nom, couleur, calories 3 FROM fruit 4 WHERE calories < :calories AND couleur = :couleur ); 5 $req->bindvalue( :calories, 150); 6 $req->bindvalue( :couleur, $couleur); 7 $req->execute(); Lors de l exécution, les marqueurs :calories et :couleur sont respectivement remplacés par les valeurs 150 et rouge. La requête est donc : SELECT nom, couleur, calories FROM fruit WHERE calories < 150 AND couleur= rouge 2.3 Sécurité Il existe plusieurs failles de sécurité importantes au niveau de la programmation d un site Web. Il est extrêmement important de contrer ces failles pour sécuriser son site Web. Bien que ce ne soit pas les seules (loin de là!), elles font partie des failles couramment utilisées pour pirater des sites Web ou les bases de données de ces sites. 5. La méthode bindvalue peut également prendre un troisième paramètre indiquant le type de la valeur (PDO::PARAM_INT,PDO::PARAM_STR, etc). Ce paramètre est parfois nécessaire pour construire des requêtes syntaxiquement correctes (notamment avec la clause LIMIT). 6. Exemple issu du site PHP.net 26

7 Département informatique Attaques par injection SQL Ce type d attaques consiste à modifier une requête SQL pour obtenir un résultat différent de celui prévu. Supposons que l on ait une table Commandes dans la base de données contenant les commandes de chaque client. Cette table pourrait être du type 7 : Id IdC NomP Qte 1 1 Canapé Lit Table Voiture 1 Le champ Id correspond à la clé primaire, IdC est l identifiant du client (clé étrangère), et NomP et Qte désignent respectivement le nom du produit et la quantité demandée. Pour afficher la liste des commandes d un utilisateur, on pourrait être tenté d écrire le code PHP suivant : 1 if( isset ($_GET[ id ])) 2 { 3 try 4 { 5 $req = $bd->prepare( SELECT * FROM Commandes WHERE IdC =. $_GET[ id ]); 6 $req->execute(); 7 while($t = $req->fetch(pdo::fetch_assoc)) 8 echo <p>. $t[ nomp ].. $t[ Qte ]. </p> ; 9 } 10 catch(pdoexception $e) 11 { 12 die( <p> Erreur[.$e->getCode(). ] :.$e->getmessage(). </p> ); 13 } 14 } Ainsi, l appel du script via l url afficherait les deux premières lignes de la table puisque l identifiant du client est 1. Cependant, si le script est appelé via l url OR 1=1, la requête devient : SELECT * FROM Commandes WHERE IdC = 1 OR 1=1 Le test 1=1 étant toujours vrai, le script affichera la liste de toutes les commandes, même celles qui ne sont pas celles de l utilisateur! Par ailleurs, l appel du script via l url : * FROM Commandes affichera toutes les commandes de l utilisateur dont l identifiant est 1, mais supprimera également tous les enregistrements de la table! Il existe plusieurs méthodes pour se protéger de telles attaques. On peut protéger la valeur donnée par l utilisateur dans une requête SQL en la mettant entre apostrophes, grâce à la méthode quote. Ainsi, en remplaçant la ligne 5 par : 1 $req = $bd->prepare( SELECT * FROM Commandes WHERE IdC =. $bd->quote($_get[ id ])); la requête avec la dernière url devient : SELECT * FROM Commandes WHERE IdC = 1;DELETE * FROM Commandes 7. Cette table est simpliste mais suffisante pour montrer la faille de sécurité. 27

8 I.U.T. de Villetaneuse Il n y a donc qu une requête SQL qui affiche les commandes appartenant à l utilisateur dont l identifiant est 1;DELETE * FROM Commandes. Une façon beaucoup plus efficace (et fortement conseillée) est d utiliser un marqueur de place. 1 $req = $bd->prepare( SELECT * FROM Commandes WHERE IdC = :ident ); 2 $req->bindvalue( :ident,$_get[ id ]); Ainsi, la valeur saisie par l utilisateur est automatiquement protégée car elle est comprise comme une valeur (et non un test ou une valeur suivie d une requête) Failles XSS La faille XSS (pour cross-site scripting) est une des failles les plus importantes. Elle consiste à insérer du code javascript 8 (ou autre) qui sera interprété par le navigateur. Supposons que l on ait une table Personnes contenant Nom Grappe David Malveillant Prenom Roland Julien <script>confirm("attaque") ;</script> Il est clair que la dernière ligne de cette table n est pas correcte. Un utilisateur malveillant a inséré du code javascript comme valeur pour le champ Prenom. Supposons maintenant qu un script PHP affiche toutes les personnes de la table (c.f. code de la section 2.2.2). Lorsque le script sera exécuté, il enverra au navigateur le code HTML 1 <p> Nom : Grappe et prénom : Roland </p> 2 <p> Nom : David et prénom : Julien </p> 3 <p> Nom : Malveillant et prénom : <script>confirm("attaque");</script> </p> Le navigateur recevant ce code HTML interprètera la balise script (balise HTML indiquant que ce qui est à l intérieur est un code javascript à exécuter) et exécutera le code javascript : Figure 2.2 Interprétation du code HTML reçu (faille XSS) Autrement dit, toutes les personnes qui demanderont cette page PHP auront déclenché, à leur insu et à celle du développeur du site, l exécution d un code javascript. Bien évidemment, ce code peut être bien plus gênant que l affichage d une fenêtre! Ce code peut par exemple 9 : faire une redirection (parfois de manière transparente) de l utilisateur (souvent dans un but de hameçonnage), voler des informations, par exemple les sessions et les cookies, 8. Le langage javascript est un langage client, c est-à-dire s exécutant sur le navigateur. 9. Exemples donnés sur Wikipédia. 28

9 Département informatique effectuer des actions sur le site faillible, à l insu de la victime et sous son identité (envoi de messages, suppression de données...), rendre la lecture d une page difficile (boucle infinie d alertes par exemple). Pour se prémunir d une telle attaque, il faut désactiver dans le code HTML généré toutes les balises HTML qui ne sont pas prévues. Pour cela, on peut utiliser la fonction PHP htmlspecialchars. Cette fonction prend en paramètre une chaîne de caractères et en renvoie une autre. La chaîne renvoyée est la même que celle passée en paramètre, excepté que certains caractères spéciaux HTML sont écrits à l aide de leur code HTML. Par exemple, le caractère < sera remplacé par son code <. L appel de la fonction htmlspecialchars( <script>confirm("attaque");</script> ) retournera ainsi <script>confirm("attaque");</script>. Dans le code PHP affichant la liste des personnes, remplacer l instruction : 1 echo <p> Nom :. $rep[ Nom ]. et prénom :. $rep[ Prenom ]. </p> ; par 1 echo <p> Nom :. htmlspecialchars($rep[ Nom ]). et prénom : 2. htmlspecialchars ($rep[ Prenom ]). </p> ; génèrera le code 1 <p> Nom : Grappe et prénom : Roland </p> 2 <p> Nom : David et prénom : Julien </p> 3 <p> Nom : Malveillant et prénom : <script>confirm("attaque");< script > </p> Le navigateur n exécutera aucun code javascript et, interprétant les codes spéciaux, affichera alors Figure 2.3 Interprétation du code HTML reçu (avec correction de la faille XSS) Il faut donc toujours s assurer que les données saisies par l utilisateur soient affichées avec la fonction htmlspecialchars, soit en utilisant cette fonction au moment de l affichage (dans le echo), soit au moment de sauvegarder les données dans la base de données. Remarque : Comme le caractère & est lui-même un caractère HTML spécial (code &), il ne faut appliquer htmlspecialchars qu une seule fois Gestion des mots de passe Il est souvent nécessaire, dans un site Web, que les utilisateurs s authentifient en donnant un login et un mot de passe. Dans ce cas, la base de données doit contenir ces informations. Lors de l authentification, le script PHP, si le login saisi par l utilisateur existe dans la base de données, vérifiera que le mot de passe saisi par l utilisateur est bien le même que celui associé au login dans la base de données. On serait donc tenté d avoir une table MotsDePasse ressemblant à : login jim arn edge pass azerty php123 1maxABC Ainsi, le script d authentification serait : 29

10 I.U.T. de Villetaneuse 1 //On suppose que les login et mot de passe saisis par l utilisateur sont 2 //dans $_POST[ login ] et $_POST[ pass ] 3 $req = $bd->prepare( SELECT pass FROM MotsDePasse WHERE login=:login ); 4 $req->bindvalue( :login,$_post[ login ]); 5 $req->execute(); 6 $res = $req->fetch(pdo::fetch_assoc); 7 if($res) //S il y a une correspondance 8 { 9 if($_post[ pass ]==$res[ pass ]) //Si les mots de passe sont les mêmes 10 { 11 echo <p> Connexion réussie </p> ; 12 $_SESSION[ connecte ] = true; 13 } 14 } Si la portion de script PHP ne présente pas de failles, stocker les mots de passe en clair dans la base de données n est pas sécurisé. En effet, si un individu malveillant accède à toute la table MotsDePasse (grâce à une faille dans le site Web ou parce qu il a les droits pour accéder à cette table), il peut se connecter avec n importe quel compte. De plus, comme les gens utilisent généralement les mêmes mots de passe pour différents sites Web, il peut usurper le compte d un des utilisateurs sur un autre site. Pour contrer cette faille, il faut chiffrer (ou crypter) les mots de passe. Il existe plusieurs algorithmes de chiffrement tels que SHA1 10. Pour chiffrer un mot de passe, on utilise en PHP la fonction sha1 qui prend en paramètre une chaîne de caractères et renvoie la chaîne correspondant au chiffrement de la chaîne passée en paramètre. À titre d exemple, l appel sha1( azerty ) renvoie 9cf95dacd226dcf43da376cdb6cbba L intérêt des fonctions de hachage cryptographique (ou fonctions de chiffrement) est qu il est très facile de chiffrer une chaîne mais très difficile 11 de la décrypter, c est-à-dire de retrouver la valeur azerty à partir de 9cf95dacd226dcf43da376cdb6cbba Les mots de passe dans la base de données doivent donc être stockés déjà chiffrés. On obtient alors la table : login jim arn edge pass 9cf95dacd226dcf43da376cdb6cbba fbed57b01f8b54e14c36fab2b13cbc62 b eabb1ef43b3ea2aec31d7e5bba389b Dans le script d authentification, le test de la ligne 9 sera remplacé par : 1 if(sha1($_post[ pass ])==$res[ pass ]) L individu accédant à la table ne pourra donc pas connaître les mots de passe, il n aura accès qu aux mots de passe chiffrés. Cependant, il pourra générer un très grand nombre de mots de passe chiffrés et comparer les résultats obtenus avec les mots de passe de la table. En cas de correspondance, il aura donc trouver un mot de passe. Ce type d attaque 12 permet de trouver les mots de passe simples 13. Le mot de passe azerty sera testé dès le début puisqu il fait partie des 25 mots de passe les plus utilisés et sera donc vite trouvé. Pour améliorer la sécurité, on ajoute une chaîne spécifique, appelée grain de sel, lors du chiffrement (ou hachage) du mot de passe. On ne chiffre plus alors directement le mot de passe mais la concaténation du mot de passe et du grain de sel. 10. Il existe d autres algorithmes de chiffrement plus difficiles à décrypter, assurant une meilleure sécurité, mais un peu plus difficile à utiliser. 11. La difficulté dépend bien sûr de l algorithme de cryptage utilisé. 12. Plusieurs versions de ce type d attaque existent : attaque par force brute, rainbow table, etc. 13. Il existe notamment sur le Web des dictionnaires donnant la liste des mots de passe les plus courants ainsi que leur version chiffrée. 30

11 Département informatique Supposons que le grain de sel choisi pour le site Web soit 1zetydEEcjel4ek3. La table devient alors : login jim arn edge pass e48f79fe18ac01d06e12b2512b1acb32ce58b16d b3a5f0afa9d0685ed3f6b3948f6ee7a1423d86e7 a20d504672f74cf4c8a7a261a d et le test dans le script est remplacé par : 1 if(sha1($_post[ pass ]. 1zetydEEcjel4ek3 )==$res[ pass ]) 31

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Sommaire : Contenu I. Introduction:... 2 II. Présentation de l atelier :... 2 1) Attaque persistante :... 3 2) Attaque non persistante :...

Plus en détail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

PDO : PHP Data Object 1/13

PDO : PHP Data Object 1/13 PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension

Plus en détail

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

Plus en détail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Attaques applicatives

Attaques applicatives Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Gestion de stock pour un magasin

Gestion de stock pour un magasin Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire

Plus en détail

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 A t t a q u e s c o n t r e l e s a p p l i s w e b cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 D e l ' u t i l i t é d e l ' a t t a

Plus en détail

PHP. PHP et bases de données

PHP. PHP et bases de données Accés aux bases de données Une des raisons du succès de PHP Support d un grand nombre de bases - MySQL - Oracle - PostgreSQL - SQLite - Microso> Access - DBM - IBM Informix -... Accés aux bases de données

Plus en détail

SYSTÈMES D INFORMATIONS

SYSTÈMES D INFORMATIONS SYSTÈMES D INFORMATIONS Développement Modx Les systèmes de gestion de contenu Les Content Management Système (CMS) servent à simplifier le développement de sites web ainsi que la mise à jour des contenus.

Plus en détail

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 PHP Bertrand Estellon Aix-Marseille Université 26 avril 2012 Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 SQLite et PDO Base de données SQLite et PDO SQLite écrit les données relatives à la base dans

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP

Plus en détail

SQL MAP. Etude d un logiciel SQL Injection

SQL MAP. Etude d un logiciel SQL Injection Introduction Ce TP a pour but d analyser un outil d injection SQL, comprendre les vulnérabilités d une BD et de mettre en œuvre une attaque par injection SQL. Prise en main du logiciel SQLMap est un outil

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2) Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation

Plus en détail

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON Tech-Evenings Sécurité des applications Web Sébastien LEBRETON Pourquoi revoir la sécurité des applications Web Des technologies omniprésentes Facilité de mise en œuvre et de déploiement. Commerce en ligne,

Plus en détail

Sécurité des applications web. Daniel Boteanu

Sécurité des applications web. Daniel Boteanu I F8420: Éléments de Sécurité des applications web Daniel Boteanu Architecture des applications web Client légitime Internet HTTP 浀 HTML Server Web 2 Architecture des applications web Client légitime Internet

Plus en détail

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Vulnérabilités et sécurisation des applications Web

Vulnérabilités et sécurisation des applications Web OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com Page 1 Planning

Plus en détail

SQL Parser XML Xquery : Approche de détection des injections SQL

SQL Parser XML Xquery : Approche de détection des injections SQL SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des

Plus en détail

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES WEB & DÉVELOPPEMENT LES BASES DU WEB HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES LE LANGAGE HTML STRUCTURE D UNE PAGE En-tête et corps Syntaxe INSÉRER DES CONTENUS Texte : formatage (titre,

Plus en détail

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI OWASP Open Web Application Security Project Jean-Marc Robert Génie logiciel et des TI A1: Injection Une faille d'injection, telle l'injection SQL, OS et LDAP, se produit quand une donnée non fiable est

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Définition des Webservices Ordre de paiement par email. Version 1.0

Définition des Webservices Ordre de paiement par email. Version 1.0 Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8 Sage 100 CRM - Guide de la Fusion Avancée Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Hébergement de site web Damien Nouvel

Hébergement de site web Damien Nouvel Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1 E-TRANSACTIONS Guide du programmeur API Plug-in Version 1.1 Avertissements : Le fichier Version.txt précise l'environnement dans lequel l API a été compilée et testée. L'installation de l API sur tout

Plus en détail

RÉALISATION D UN SITE DE RENCONTRE

RÉALISATION D UN SITE DE RENCONTRE RÉALISATION D UN SITE DE RENCONTRE Par Mathieu COUPE, Charlène DOUDOU et Stéphanie RANDRIANARIMANA Sous la coordination des professeurs d ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Attaques de type. Brandon Petty

Attaques de type. Brandon Petty Attaques de type injection HTML Brandon Petty Article publié dans le numéro 1/2004 du magazine Hakin9 Tous droits reservés. La copie et la diffusion de l'article sont admises à condition de garder sa forme

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

LEA.C5. Développement de sites Web transactionnels

LEA.C5. Développement de sites Web transactionnels LEA.C5 Développement de sites Web transactionnels LEA.C5 Développement de sites Web transactionnels Toutes les entreprises et les organisations utilisent le réseau Internet comme outil de promotion, de

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012 EP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012 I. Objectifs Mettre en œuvre les compétences acquises ou en cours d acquisition en: o Modélisation UML, Réseau, Base de données,

Plus en détail

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09 INFORMATIQUE & WEB Code du diplôme : CP09 Passionné par l informatique et le web, vous souhaitez obtenir une certification dans un domaine porteur et enrichir votre CV? PARCOURS CERTIFICAT PROFESSIONNEL

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE Épreuve de cas pratique dans la spécialité correspondant à l'option choisie par le candidat Option D Durée de préparation

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 modalisa Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 8 Fonctionnalités de mise en ligne de questionnaires Vous trouverez dans cet opuscule les informations nécessaires

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Opération & Support http://www.keyyo.fr/fr/support/expert.php Version 1.0.7 Sommaire 1 Portée du document... 3 2 Introduction à la configuration...

Plus en détail

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures 3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures Objectif global : A l issue de la formation, les stagiaires doivent être opérationnels dans la création d un site internet

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

Rapport de stage Nicolas PLAZE Licence Pro A2I. Rapport de Stage LICENCE PRO A2I. Société INFHOTIK. Nicolas PLAZE

Rapport de stage Nicolas PLAZE Licence Pro A2I. Rapport de Stage LICENCE PRO A2I. Société INFHOTIK. Nicolas PLAZE Rapport de Stage LICENCE PRO A2I Société INFHOTIK Nicolas PLAZE Année 2001-2002 1 I. L ENTREPRISE 1. Raison sociale 2. Activité 3. Personnel 4. L offre infhotik hôtel 5. Les projets SOMMAIRE II. OBJECTIFS

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

HTML. Notions générales

HTML. Notions générales 1 HTML Le langage HTML est le langage de base permettant de construire des pages web, que celles-ci soient destinées à être affichées sur un iphone/android ou non. Dans notre cas, HTML sera associé à CSS

Plus en détail

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail

Création d objet imbriqué sous PowerShell.

Création d objet imbriqué sous PowerShell. Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.

Plus en détail

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org Les sites Internet dynamiques contact : Patrick VINCENT pvincent@erasme.org Qu est-ce qu un site Web? ensemble de pages multimédia (texte, images, son, vidéo, ) organisées autour d une page d accueil et

Plus en détail

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE Le responsable de la société Itaste utilise une application installée sur son poste : elle est programmée en VBA sous Microsoft Access et pourvue d une

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte? Avant-propos... V CHAPITRE 1 Scripting Windows, pour quoi faire?... 1 Dans quel contexte?.................................................. 1 La mauvaise réputation............................................

Plus en détail

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1

Plus en détail

Authentification et contrôle d'accès dans les applications web

Authentification et contrôle d'accès dans les applications web Authentification et contrôle d'accès dans les applications web Quelques Rappels Objectifs : contrôler que seulement Certains utilisateurs Exécutent certaines opérations Sur certains objets Trois entités

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail