Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année
|
|
- Aurélie St-Laurent
- il y a 8 ans
- Total affichages :
Transcription
1 Programmation Web Sites dynamiques et bases de données Mathieu Lacroix I.U.T. de Villetaneuse Année mathieu.lacroix@iutv.univ-paris13.fr Page Web : http: // www-lipn. univ-paris13. fr/ ~lacroix/ Mathieu Lacroix Programmation Web 1 / 40
2 Plan 1 Programmation orientée objet en PHP 2 PHP et bases de données 3 Sécurité Mathieu Lacroix Programmation Web 2 / 40
3 Plan 1 Programmation orientée objet en PHP 2 PHP et bases de données 3 Sécurité Mathieu Lacroix Programmation Web 3 / 40
4 Syntaxe Proche du java : classes, héritage, interfaces. Définition d une classe class nomclass { //Attributs et méthodes } Visibilité : public, private ou protected. Noms des attributs : $attribut (lors de la déclaration). Constructeur : construct(). $this : référence à l objet sur lequel est appelée la méthode. Possibilité d attributs ou méthode statiques (static) Possibilité de constantes de classes (const) Mathieu Lacroix Programmation Web 4 / 40
5 Définition d une classe Exemple class Joueur { public $login; //attribut login (publique) private $score; //attribut score (privé) const NOM_JEU = "Tarot"; //Constante NOM_JEU de valeur Tarot public function construct($ch,$ent) { //Teste si la valeur $ent correspond à un entier if (((string) $ent) === ((string)(int) $ent)) $this->score = $ent; else $this->score = 0; } if (trim($ch)!= ) $this->login = $ch; else $this->login = anonymous ; Mathieu Lacroix Programmation Web 5 / 40
6 Définition d une classe Exemple public function score() { return $this->score; } public function gagne($score) { if (((string) $score) === ((string)(int) $score)) $this->score += $score; } } Mathieu Lacroix Programmation Web 6 / 40
7 Utilisation d une classe Exemple Instanciation : new suivi du nom de la classe Accès aux méthodes et attributs : $objet->attribut ou $objet->methode() Accès aux attributs ou méthodes statiques (ou constantes) : NOM_CLASSE::attribut ou NOM_CLASSE::methode() echo <p> Jeu :. Joueur::NOM_JEU. </p> ; $j1 = new Joueur( sky,33); $j2 = new Joueur( Dark,755); $j1->gagne(180); echo <p> Scores :. $j1->login. a. $j1->score(). points <br/>. $j2->login. a.$j2->score(). points</p> ; Jeu : Tarot Scores : sky a 213 points Dark a 755 points. Mathieu Lacroix Programmation Web 7 / 40
8 Plan 1 Programmation orientée objet en PHP 2 PHP et bases de données 3 Sécurité Mathieu Lacroix Programmation Web 8 / 40
9 Principe Principe 4 - Visualisation de la page 1 - Demande d'exécution du script PHP 2 - Génération de code HTML Visiteur Client 3 - Envoi du code HTML généré Serveur Requête(s) SQL Réponse(s) SQL Base de données Plusieurs requêtes possibles SQL dans un script PHP. Mathieu Lacroix Programmation Web 9 / 40
10 Rappels requêtes SQL Table Joueurs : IdJ, Nom, Prenom Table Scores : IdS, IdJ, NomJeu, Score Interrogation SELECT [DISTINCT] nomchamps/fonction FROM nomtable [WHERE condition] Exemples : SELECT DISTINCT nomjeu FROM Scores SELECT * FROM Scores WHERE IdJ=1 SELECT MAX(Score) FROM Scores WHERE IdJ=1 SELECT Nom, Prenom FROM Joueurs NATURAL JOIN (SELECT IdJ FROM Scores WHERE NomJeu = Tarot ) Mathieu Lacroix Programmation Web 10 / 40
11 Rappels requêtes SQL Suppressions (de lignes) DELETE FROM nomtable WHERE condition Exemples : DELETE FROM Scores WHERE IdJ = 1 DELETE FROM Scores Mise à jour UPDATE nomtable SET nomchamp = nouvellevaleur WHERE condition Exemple : UPDATE Scores SET score = 0 WHERE IdJ = 1 AND nomjeu = Tarot Mathieu Lacroix Programmation Web 11 / 40
12 Rappels requêtes SQL Ajout de lignes INSERT INTO nomtable (champ1, champ2,...) VALUES ( valeur1, valeur2,...) Exemples : INSERT INTO Joueurs ( Nom, Prenom ) VALUES ( Dupond, Jean ) INSERT INTO Scores ( IdJ, NomJeu,Score) VALUES (18, Tarot,750), (18, Poker,1200), (18, Belote, 90) Mathieu Lacroix Programmation Web 12 / 40
13 Librairie PDO Accès aux BD avec la librairie PHP Data Object (PDO). Intérêts de PDO Permet d accéder à n importe quel SGBD (Oracle, MySQL, PostgreSQL) Permet l utilisation de requêtes préparées Requêtes préparées 2 étapes : Préparation : analyse/optimisation de la requête par le SGBD Exécution : Interrogation de la BD et récupération des résultats Possibilité d utiliser des marqueurs de place (paramètres). Intérêts des requêtes préparées Meilleure sécurisation de la base de données Accélération si une requête est exécutée plusieurs fois Mathieu Lacroix Programmation Web 13 / 40
14 Connexion à la base de données Connexion lors de l instanciation d un objet de PDO 3 paramètres : DSN, login, mot de passe Data Source Name (DSN) SGDB:host=SERVEUR;dbname=NOM_BASE SGDB : mysql, pgsql,... SERVEUR : nom du serveur (localhost, aquanux,...) NOM_BASE : nom de la base de données Mathieu Lacroix Programmation Web 14 / 40
15 Connexion à la base de données Exemple try { $bd = new PDO( mysql:host=localhost;dbname=bdtest, mat, code ); //Php communique en utf-8 (pour les accents) $bd->query( SET NAMES utf8 ); //En cas d erreur, lever des exceptions $bd->setattribute(pdo::attr_errmode,pdo::errmode_exception); } catch(pdoexception $e) { //On termine le script die( <p> Erreur[.$e->getCode(). ] :.$e->getmessage(). </p> ); } Remarques : Une seule connexion dans un script PHP Mettre ce code dans un fichier séparé Mathieu Lacroix Programmation Web 15 / 40
16 Interrogation de la base de données Préparation d une requête Méthode prepare de la classe PDO. Prend en paramètre une requête SQL (string) Retourne un objet PDO_STATEMENT correspondant à la requête préparée Exception PDOException en cas d erreur Exécution de la requête Méthode execute de la classe PDO_STATEMENT Exception PDOException en cas d erreur Mathieu Lacroix Programmation Web 16 / 40
17 Interrogation de la base de données Récupération des résultats Méthode fetch de la classe PDO_STATEMENT Retourne la ligne (enregistrement) suivante sous forme de tableau ou d objet (selon la valeur du paramètre) Retourne false en cas d erreur Valeurs possibles pour le paramètre de fetch PDO::FETCH_ASSOC : retourne un tableau associatif (clés : noms des colonnes) PDO::FETCH_NUM : retourne un tableau associatif (clés : indices des colonnes) PDO::FETCH_BOTH : retourne un tableau associatif (clés : noms et indices des colonnes) PDO::FETCH_OBJ : retourne un objet (noms des attributs : noms des colonnes) Mathieu Lacroix Programmation Web 17 / 40
18 Interrogation de la base de données Table Personnes : Exemple Nom Grappe David Borne Toulouse Prenom Roland Julien Sylvie Sophie //Dans un bloc try/catch $req = $bd->prepare( SELECT Nom, Prenom FROM Personnes ); $req->execute(); $tab = $req->fetch(pdo::fetch_assoc); echo <p>. $tab[ Nom ].. $tab[ Prenom ]. </p> ; $tab = $req->fetch(pdo::fetch_num); echo <p>. $tab[0].. $tab[1]. </p> ; $tab = $req->fetch(pdo::fetch_both); echo <p>. $tab[0].. $tab[ Prenom ]. </p> ; $obj = $req->fetch(pdo::fetch_obj); echo <p>. $obj->nom.. $obj->prenom. </p> ; Mathieu Lacroix Programmation Web 18 / 40
19 Interrogation de la base de données Premier appel : fetch retourne Array ( [Nom] => Grappe [Prenom] => Roland ) Deuxième appel : fetch retourne Array ( [0] => David [1] => Julien ) Mathieu Lacroix Programmation Web 19 / 40
20 Interrogation de la base de données Troisième appel : fetch retourne Array ( [Nom] => Borne [0] => Borne [Prenom] => Sylvie [1] => Sylvie ) Quatrième appel : fetch retourne Objet contenant deux attributs : nom de l attribut : Nom, valeur : Toulouse nom de l attribut : Prenom, valeur : Sophie Si cinquième appel, fetch retourne false Mathieu Lacroix Programmation Web 20 / 40
21 Interrogation de la base de données Affichage produit <p> Grappe Roland </p> <p> David Julien </p> <p> Borne Sylvie </p> <p> Toulouse Sophie </p> Mathieu Lacroix Programmation Web 21 / 40
22 Interrogation de la base de données Parcours de tous les résultats //Préparation et exécution while($rep = $req->fetch(pdo::fetch_assoc)) { echo <p>. $rep[ Nom ].. $rep[ Prenom ]. </p> ; } La boucle s arrête quand fetch retourne false Mathieu Lacroix Programmation Web 22 / 40
23 Marqueurs de place Définition/Utilisation Intérêts Endroits dans la requête qui seront remplacés par des valeurs lors de l exécution Définis par ":" suivi du nom du marqueur dans la requête Valeur donnée grâce à la méthode bindvalue Exécution d une requête avec plusieurs valeurs différentes Sécurisation des requêtes contre les attaques par injection SQL Mathieu Lacroix Programmation Web 23 / 40
24 Marqueurs de place Exemple $couleur = rouge ; $req = $bd->prepare( SELECT nom, couleur, calories FROM fruit WHERE calories < :calories AND couleur = :couleur ); $req->bindvalue( :calories, 150); $req->bindvalue( :couleur, $couleur); $req->execute(); SELECT nom, couleur, calories FROM fruit WHERE calories < 150 AND couleur= rouge Mathieu Lacroix Programmation Web 24 / 40
25 Plan 1 Programmation orientée objet en PHP 2 PHP et bases de données 3 Sécurité Mathieu Lacroix Programmation Web 25 / 40
26 Attaques par injection SQL Définition Modification (non prévue par le développeur) d une requête SQL Résultats obtenus pouvant être très différents! Table Cmd : Id IdC NomP Qte 1 1 Canapé Lit Table Voiture 1 Exemple if(isset($_get[ id ])) { $req=$bd->prepare( SELECT * FROM Cmd WHERE IdC =.$_GET[ id ]); $req->execute(); while($t = $req->fetch(pdo::fetch_assoc)) echo <p>. $t[ nomp ].. $t[ Qte ]. </p> ; } Mathieu Lacroix Programmation Web 26 / 40
27 Attaques par injection SQL SELECT * FROM Cmd WHERE IdC = 1 Affiche les deux premières lignes de la table OR 1=1 SELECT * FROM Cmd WHERE IdC = 1 OR 1=1 Affiche toutes les lignes! * FROM Cmd SELECT * FROM Cmd WHERE IdC = 1; DELETE * FROM Cmd Affiche les 2 premières lignes et supprime les données de la table! Mathieu Lacroix Programmation Web 27 / 40
28 Attaques par injection SQL Parades Mettre entre apostrophes les valeurs saisies par l utilisateur $req = $bd->prepare( SELECT * FROM Cmd WHERE IdC =. $bd->quote($_get[ id ])); Utiliser les marqueurs de place pour les valeurs saisies $req = $bd->prepare( SELECT * FROM Cmd WHERE IdC = :ident ); $req->bindvalue( :ident,$_get[ id ]); Meilleure solution : Marqueurs de place (plus rapide et plus simple) * FROM Cmd Affiche les lignes dont l IdC vaut : 1;DELETE * FROM Cmd Mathieu Lacroix Programmation Web 28 / 40
29 Faille XSS Définition Insertion de code javascript (langage client) interprété par le navigateur Table Personnes Nom Grappe David Malveillant Prenom Roland Julien <script>confirm("attaque") ;</script> Mathieu Lacroix Programmation Web 29 / 40
30 Faille XSS Script PHP $req = $bd->prepare( SELECT Nom, Prenom FROM Personnes ); $req->execute(); while($rep = $req->fetch(pdo::fetch_assoc)) { echo <p>. $rep[ Nom ].. $rep[ Prenom ]. </p> ; } Code HTML généré <p> Nom : Grappe et prénom : Roland </p> <p> Nom : David et prénom : Julien </p> <p> Nom : Malveillant et prénom : <script> confirm("attaque");</script> </p> Mathieu Lacroix Programmation Web 30 / 40
31 Faille XSS Résultat Toute personne accédant à cette page Web exécute un script sur son navigateur! Mathieu Lacroix Programmation Web 31 / 40
32 Faille XSS Conséquences possibles Redirection de l utilisateur (hameçonnage) Vol d informations (sessions et cookies) Actions sur le site, à l insu de la victime et sous son identité (envoi de messages, suppression de données...) Lecture d une page difficile (boucle infinie d alertes par exemple) Mathieu Lacroix Programmation Web 32 / 40
33 Faille XSS Parade Utilisation de htmlspecialchars Script PHP $req = $bd->prepare( SELECT Nom, Prenom FROM Personnes ); $req->execute(); while($rep = $req->fetch(pdo::fetch_assoc)) { echo <p>. htmlspecialchars($rep[ Nom ]).. htmlspecialchars($rep[ Prenom ]). </p> ; } Code HTML généré <p> Nom : Grappe et prénom : Roland </p> <p> Nom : David et prénom : Julien </p> <p> Nom : Malveillant et prénom : <script> confirm("attaque");</script> </p> Mathieu Lacroix Programmation Web 33 / 40
34 Faille XSS Résultat Aucun script n est exécuté! Utiliser htmlspecialchars lors de l affichage OU lors de l insertion dans la BD Mathieu Lacroix Programmation Web 34 / 40
35 Gestion des mots de passe Authentification par login/mot de passe. Table MotsDePasse login jim arn edge pass azerty php123 1maxABC Mathieu Lacroix Programmation Web 35 / 40
36 Gestion des mots de passe Script d authentification //On suppose que les login et mot de passe saisis sont //dans $_POST[ login ] et $_POST[ pass ] $req = $bd->prepare( SELECT pass FROM MotsDePasse WHERE login=:login ); $req->bindvalue( :login,$_post[ login ]); $req->execute(); $res = $req->fetch(pdo::fetch_assoc); if($res) //S il y a une correspondance { if($_post[ pass ]==$res[ pass ]) //Si mêmes mots de passe { echo <p> Connexion réussie </p> ; $_SESSION[ connecte ] = true; } } Mathieu Lacroix Programmation Web 36 / 40
37 Gestion des mots de passe Problème Toute personne accédant à la table connaît tous les mots de passe! Accès à la table MotsDePasse Faille dans le site Droits suffisants Utilisation frauduleuse Connexion avec n importe quel compte Connexion sur d autres sites avec mêmes login/mots de passe Mathieu Lacroix Programmation Web 37 / 40
38 Gestion des mots de passe Parade Stocker les mots de passe chiffrés! Chiffrement Différents algorithmes possibles (ex sha1) Chiffrement très facile Déchiffrement très difficile Utilisation en PHP sha1( azerty ) renvoie 9cf95dacd226dcf43da376cdb6cbba Mathieu Lacroix Programmation Web 38 / 40
39 Gestion des mots de passe Table MotsDePasse login jim arn edge pass 9cf95dacd226dcf43da376cdb6cbba fbed57b01f8b54e14c36fab2b13cbc62 b eabb1ef43b3ea2aec31d7e5bba389b Nouveau test dans le script PHP if(sha1($_post[ pass ])==$res[ pass ]) Mathieu Lacroix Programmation Web 39 / 40
40 Gestion des mots de passe Le chiffrement ne résoud pas tout! Attaque possible Génération de mots de passe et vérification de concordance Dictionnaire de mots de passe (en clair et chiffrés) Le mot de passe azerty très vite trouvé! Parade Utilisation d un grain de sel (ex : 1zetydEEcjel4ek3 ) Chiffrer la concaténation du mot de passe et du grain de sel if(sha1($_post[ pass ]. 1zetydEEcjel4ek3 ) ==$res[ pass ]) Mathieu Lacroix Programmation Web 40 / 40
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étailPrincipales 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étailPHP. 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étailCREATION 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étailPHP 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étailSé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étailPHP 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étailPDO : 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étailPHP. 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étailSé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étailLa 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étailAttaques 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étailApplication 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étailJava 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étailcedric.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étailPHP 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étailStockage 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étailCours 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étailINTRODUCTION 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étailIntroduction à 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étailDossier 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étailProgrammation 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étailMysql 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étailLangage 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étailQuelques 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étailPratique 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étailSQL 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étailModule 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étailLangage 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étailSQL 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étailUn exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi
Un exemple d'authentification sécurisée utilisant les outils du Web : CAS 111 L authentification CAS : «Central Authentication Service» CAS ou le service central d authentification Le système CAS, développé
Plus en détailPartie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle
Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Ce projet comporte trois parties sur les thèmes suivants : création de base de donnée, requêtes SQL, mise en œuvre
Plus en détailPlan 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étailPROJET 1 : BASE DE DONNÉES REPARTIES
PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties
Plus en détail1 Position du problème
Licence Science et Technologies - INF245 Examen session 1 - mai 2012 Durée : 2 heures Documents non autorisés Le barème est donné à titre indicatif 1 Position du problème Le Club Universitaire de Vélo
Plus en détailSYSTÈ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étailDevenez 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étailModule 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étailINSTALLATION 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étailTech-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étailTP 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étailRemote 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étailWEB & 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étailEP60.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étailMysql. Les requêtes préparées Prepared statements
Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailLes 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étail3W 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étailL 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étailPHP 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étailHé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étailApplication BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :
ntroduction 1/28 2/28 Anne-Cécile Caron Licence MAGE - Bases de Données 2013-2014 Application base de données Pour le développeur : Quel est l environnement? type de client (mode client serveur, intranet,...)
Plus en détail1. 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étailPlateforme 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étailBases 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étailBases de Données relationnelles et leurs systèmes de Gestion
III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation
Plus en détailExemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions
Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces
Plus en détailISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL
ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé
Plus en détailVulné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étailBases 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étailIntroduction à 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étailInstallation et Mise en œuvre de MySQL
T-GSI STAGE RENOVATION - SQL.Chapitre 2 - Installation et Mise en œuvre de MySQL Olivier Mondet http://unidentified-one.net A. Pourquoi choisir MySQL? A.1. MySQL, très controversé La base de données MySQL
Plus en détailLes bases de données
Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive
Plus en détailGestion 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étail1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5
1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases
Plus en détailLe stockage local de données en HTML5
Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,
Plus en détailA QUOI SERVENT LES BASES DE DONNÉES?
BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès
Plus en détailLes Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.
Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger
Plus en détailBTS/CGO P10 SYSTEME INFORMATION Année 2012-2013
BTS/CGO P10 SYSTEME INFORMATION Année 2012-2013 TS2 CGO 7 mars 2013 2 heures Aucun document autorisé Calculatrice autorisée Nota : Il vous est demandé d apporter un soin particulier à la présentation de
Plus en détailLe langage SQL (première partie) c Olivier Caron
Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)
Plus en détailJava 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étail1 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étailDé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étailNFA 008. Introduction à NoSQL et MongoDB 25/05/2013
NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée
Plus en détailOWASP 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étailCorrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
Plus en détailLEA.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étailModélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework
Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé
Plus en détailPHP 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étailJérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données
Base de Données Cours Introductif Base de Données Quelques chiffres Évolution annuelle moyenne 2004/2000 15% +20% 12% 5% 0.5% 2000 2004 L3G IA SG mono poste : Part de marché 5% 5% 10% Paradox 65% SG 15%
Plus en détailGestion 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étailFormation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux
Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un
Plus en détailLe langage SQL pour Oracle - partie 1 : SQL comme LDD
Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger
Plus en détailCours SQL. Base du langage SQL et des bases de données
Cours SQL Base du langage SQL et des bases de données Auteur Tony Archambeau Site web http://sql.sh Date 24 mai 2014 Licence Mis à disposition selon les termes de la licence Creative Commons Attribution
Plus en détailLes BASES de DONNEES dans WampServer
Les BASES de DONNEES dans WampServer 1 Définitions Générales Une base de données (BDD) permet d'enregistrer, de stocker, de ranger des données de façon organisée et hiérarchisée. SQL est le langage qui
Plus en détailLicence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées
Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :
Plus en détailDOM - Document Object Model
DOM - Document Object Model 1 But de DOM Interfacer les langages de programmation avec les documents XML en les associant avec un modèle orienté objet DOM permet aux programmes et scripts : d'accéder et
Plus en détailles techniques d'extraction, les formulaires et intégration dans un site WEB
les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailServeur 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étailSHERLOCK 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étailRapport 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étailAccès aux bases de données
13 Accès aux bases de données Les bases de données fournissent un mécanisme de stockage persistant pour les données d application et dans bien des cas, elles sont essentielles au fonctionnement des applications.
Plus en détailDéveloppement des Systèmes d Information
Développement des Systèmes d Information Axe ISI Camille Persson Institut Fayol / LSTI / ISCOD École Nationale Supérieure des Mines de Saint-Etienne 158 cours Fauriel, 42000 Saint-Etienne persson@emse.fr
Plus en détailAuthentification 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étailA.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW
A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca
Plus en détail