APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.

Slides:



Advertisements
Similar presentations
PHP Form and File Handling
Advertisements

PHP I.
JavaScript I. JavaScript is an object oriented programming language used to add interactivity to web pages. Different from Java, even though bears some.
Java Script Session1 INTRODUCTION.
Perles d’avocats Voici une sélection de questions réellement posées à des témoins par des avocats durant des procès aux Etats-Unis et, dans certains.
Cours 9 Les protocoles de niveau trame. La trame LAP-B Le protocole LAP-B (Link Access Protocol - channel B) est une trame qui a été normalisée pour transporter.
TICE 2 ième Semestre Fonctions « logiques ». Février 2006TICE 2ième Semestre - Les fonctions logiques2 Petits rappels… Une formule est toujours de la.
1 PHP Statement Constructs Server Scripting. 5-2 Basic Statement All Statements end in a semicolon. Statements are delimited from the HTML code by enclosing.
Multiple Tiers in Action
Javascript II Expressions and Data Types. 2 JavaScript Review programs executed by the web browser programs embedded in a web page using the script element.
INFM 603: Information Technology and Organizational Context Jimmy Lin The iSchool University of Maryland Thursday, October 18, 2012 Session 7: PHP.
Dynamic Web Pages (Flash, JavaScript)
Created by, Author Name, School Name—State FLUENCY WITH INFORMATION TECNOLOGY Skills, Concepts, and Capabilities.
Generations of Programming Languages First generation  Machine Language Second Generation  Assembly Language Third Generation  Procedural language such.
Week 9 PHP Cookies and Session Introduction to JavaScript.
Creating Dynamic Web Pages Using PHP and MySQL CS 320.
RegExp. Regular Expression A regular expression is a certain way to describe a pattern of characters. Pattern-matching or keyword search. Regular expressions.
Variables and ConstantstMyn1 Variables and Constants PHP stands for: ”PHP: Hypertext Preprocessor”, and it is a server-side programming language. Special.
Regular Expressions in PHP. Supported RE’s The most important set of regex functions start with preg. These functions are a PHP wrapper around the PCRE.
CS346 Javascript -3 Module 3 JavaScript Variables.
Introduction to Programming JScript Six Scripting functions Discuss functions Password Example.
PHP’s Regular Expression Functions (Perl Compatible) Examples taken from: Beginning PHP 5 and MySQL 5 From Novice to Professional.
JavaScript, Fourth Edition
David Lawrence 7/8/091Intro. to PHP -- David Lawrence.
Introduction to JavaScript Fort Collins, CO Copyright © XTR Systems, LLC Introduction to JavaScript Programming Instructor: Joseph DiVerdi, Ph.D., MBA.
Chapter 1 Introduction to PHP Part 1. Textbook’s Code DOWNLOADS PHP and MySQL for Dynamic Web Sites Complete Set of Scripts.
Creating Databases applications for the Web: week 2 Basic HTML review, forms HW: Identify unique source for asp, php, Open Source, MySql, Access.
8 th Semester, Batch 2009 Department Of Computer Science SSUET.
1 PHP Intro PHP Introduction After this lecture, you should be able to: Know the fundamental concepts of Web Scripting Languages in general, PHP in particular.
Javascript Basic Concepts Presentation By: Er. Sunny Chanday Lecturer CSE/IT RBIENT.
Edit the text with your own short phrases. The animation is already done for you; just copy and paste the slide into your existing presentation. This animation.
MIGRATION VERS ATRIUM Présentation Etapes Attentes / Objectifs.
Pour plus de modèles : Modèles Powerpoint PPT gratuitsModèles Powerpoint PPT gratuits Page 1 Définition d’une tâche complexe.
IST 210: PHP Basics IST 210: Organization of Data IST2101.
Association canadienne des optométristes Myopie. La myopie est un problème visuel qui fait que l’œil peut voir clairement les objets proches, mais ne.
IFT359 – Programmation fonctionnelle Thème 10 Extension syntaxique II pattern  motif template  gabarit 1.
Cours n°1M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception d’un système d'information multimédia Architecture trois-tiers : PHP/MySQL &
St Luc Oct-2010 Nicolas Outters Calques Calques de réglage Masques d'écrêtage couches alpha Masque de fusion Masque de fusion intelligent.
IFT359 – Programmation fonctionnelle Thème #4 Fonctions récursives Thème #3 : évaluation par environnement a été présenté avec thème #2.
Système d’Information de Gestion. GEA2 2 Un étudiant en GEA doit être capable de Comprendre et analyser les besoins en information de gestion. Dialoguer.
Développement Très Rapide en Applications de Gestion Créer des logiciels de gestion rapidement Licence Creative Common By SA Matthieu GIROUX -
Leçon 9 pour le 27 août Une grande partie des miracles de Jésus ont été causés par des interpellations inattendues (Jaïrus, la femme avec le flux.
Stage départemental 204 « Faire des mathématiques à l'école maternelle » Le concept fondamental d'espace à l'école maternelle Un concept à construire par.
1 DREAL BOURGOGNE Mise en oeuvre de l'État Exemplaire en DREAL Plan Administration Exemplaire (P.A.E) La Fiche action n°17 du P.A.E. Bilan de consommations.
1 Revoir titre DAL 358 : VALIDATION DES CONDITIONS DE CONFORT.
Le compostage, une action écologique une action écologique.
Prévision de la trajectoire d'une avalanche dense ● Construction d’une simulation numérique de l’écoulement d’une avalanche dense ● Modélisation ● Mise.
Les grandeurs à l’école maternelle Les masses
Installation d'un gestionnaire de messagerie : Thunderbird.
Voici notre exposé sur l' : Ultra-Léger- Motorisé ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM ULM.
CC-BY-SA // Piotrus // Wikimedia CommonsWikimedia Commons Mettre en place un wiki [[avec mediawiki]] Sylvain Machefert 15 – 06 – 2010.
PRODIGE Administration des droits. Formation ● Organisation des données ● Gestion de l'accès aux données ● Droits d'administration ● Droits spécifiques.
1 Design Pattern Rudiments d'UML. 2 UML ● Unified Modeling Language ● Langage uniformisé pour la spécification de modèles objets ● Graphiques standardisés.
Unit M Programming Web Pages with
Introduction to Dynamic Web Programming
Chapter 6 JavaScript: Introduction to Scripting
JavaScript is a programming language designed for Web pages.
Introduction to PHP Part 1
Unit M Programming Web Pages with
Scope, Objects, Strings, Numbers
Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. It was created by Guido van Rossum during.
LES TOLERANCES ET AJUSTEMENTS Suite ENPEI. LES TOLERANCES 1- LES AJUSTEMENTS 2- ALESAGE - TOLERANCES FONDAMENTALES 3- ARBRE - TOLERANCES FONDAMENTALES.
Web Systems Development (CSC-215)
Tutorial 6 PHP & MySQL Li Xu
JavaScript Basics What is JavaScript?
JavaScript is a scripting language designed for Web pages by Netscape.
JavaScript: Introduction to Scripting
Hypertext Preprocessor
Introduction to JavaScript
Presentation transcript:

APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble INP – Pagora 10 novembre 2014 Cours en Réponse à questions, n° 5

Groupe : ? Autres groupes ? ? Profs Qu’est-ce que la programmation orienté objets ? Quelle est la différence entre :: et -> ? Quels risques de piratage peut-on introduire avec des formulaires ? Comment y pallier ? Qu’est-ce qu’une expression régulière ? Comment récupérer la liste des colonnes d’une table mySQL ? Questions reçues

 Les objets dans PHP (4 et 5)

Objet : exemple du point (x,y) 2 variables séparées (« scalaires ») : float x, float y; Des structures de données : array(x,y) struct { float x, float y } struct { float x, float y, string nom } + des fonctions comme - définir un point - déplacer un point - supprimer un point  Une structure pour des valeurs ET des « méthodes » + héritage La structure n’est pas la valeur ➙ Le constructeur réserve la mémoire et initialise ➙ Le destructeur libère la mémoire ➙ Un véhicule est un engin à roues permettant de se déplacer ➙ Une voiture est un véhicule à 4 roues … struct point { float x; float y; string nom; } var p = (point) (2,3,’A’); pas en PHP

Manuel PHP : syntaxe de base ↪ voir pseudo variable $this est une référence à l’objet appelant Définition de la classe Instanciation d’un objet de la classe Exploitation d’une méthode de l’objet

Exemple : classe Personne et instances de la classe Personne Manuel PHP : syntaxe de base ↪ voir pseudo variable $this est une référence à l’objet appelant Définition de la classe Instanciation d’un objet de la classe Exploitation d’une méthode de l’objet

Manuel PHP : syntaxe de base ↪ voir

Utiliser directement un objet Pour définir un type d’objet, on doit créer une fonction pour le type d’objet Exemple javascript ↪ voir

Ne pas avoir besoin de passer tous les arguments en paramètre des fonctions, puisque certains sont des propriétés de l’objet  contexte Autres qualités de la programmation objet ↪ voir Et

mysqli : procédural ET orienté objet ↪ voir

Portée d’une variable ↪ voir

Exemple PHP5 ↪ voir

Exemple en PHP4 ↪ voir

 Sécurité

Injection MySQL : le risque Le code suivant : va envoyer au serveur MySQL la requête :  il faut « échapper » les quotes : $user='moi';$password="' OR ''='"; $query = "SELECT * FROM users WHERE user='$user' AND password='$password'"; mysql_query($query); SELECT * FROM users WHERE user='moi' AND password='' OR ''='' ↪ voir Etape 5http:// et $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'", mysql_real_escape_string($user), mysql_real_escape_string($password) );

 Il faut « échapper » les quotes : Mais la configuration du serveur lui dit peut-être déjà de le faire systématiquement Alors il ne faut pas toujours le faire faire en plus par les scripts PHP  encapsuler dans une fonction Injection MySQL : protection ↪ voir et

Lorsque les pages affichent des contenus introduits pas les visiteurs, comme des commentaires, affichés lorsque la page est visitée par les suivants Le principal risque est que le code à afficher contienne du javascript, qui sera alors exécuté «sur le client », et pourra afficher un encart issu d’un autre site ou modifier les valeurs identifiant la session  Quelles balises permettent d’exécuter du javascript ? <script language="javascript" … et tous les événements réactifs aux images... aux encarts …  refuser les contenus qui contiennent des balises « à risque » directement sur le client en Javascript ou sur le serveur en PHP Valeurs affichées en HTML => insertion de pub / vol de session ↪ voir et

 Comment refuser les contenus qui contiennent des balises « à risque » ?  But : identifier toutes les chaînes de caractères qui contiennent un « motif » Par exemple ===> repérer … dans la chaîne de caractères : Défauts : les calculs sont couteux  s’il est possible de « faire plus simple », le faire Par exemple, en PHP utiliser trim() pour enlever les blancs en début et fin de chaîne il y a des écarts entre les implémentations des fonctions pour traiter les RegEx dans les différents langages et des erreurs dans les implémentations courantes ( = décallages entre les résultats et la théorie) Valeurs affichées en HTML : protection  expressions régulières ↪ voir et et aussi (utilisateurs avancés) le texte ce lien n’est pas dangereux

 But : repérer dans la chaîne de caractères : Expressions régulières : exemple de la balise le texte n’est pas dangereux ↪ voir

 But : repérer … dans la chaîne de caractères : Expressions régulières : exemple de la balise le texte ce lien n’est pas dangereux ↪ voir

 Comment faire en PHP ? 2 bibliothèques : PCRE  exécutent des codes d’un autre langages : PERL  plusieurs fonctions dont le nom commence par preg_...() POSIX  plus lent que PRCE  plusieurs fonctions dont le nom commence par ereg_...() ou split...() preg_match( $regexp, $subject, $matches ) preg_match_all( $regexp, $subject, $matches ) preg_replace($regexp, $remplacement, $subject) $regexp est la chaîne qui définit le motif à retrouver Expressions régulières : par des fonctions PHP ↪ voir et après avoir trouvé le premier résultat, la recherche continue jusqu’à la fin de la chaîne analyse la chaîne jusqu’à avoir trouvé le motif après avoir trouver la ou les chaînes, remplace des parties par un correspondant

 But : repérer … dans la chaîne de caractères : code PHP : Expressions régulières : un exemple en PHP le texte ce lien n’est pas dangereux ↪ voir

Expressions régulières : exemple avec preg_match() preg_match() analyse la chaîne jusqu’à avoir trouvé le motif

Expressions régulières : exemple avec preg_match_all() preg_match_all() après avoir trouvé le premier résultat, la recherche continue jusqu’à la fin de la chaîne

Expressions régulières : exemple avec preg_match_replace() preg_match_replace() après avoir trouver la ou les chaînes, remplace des parties par un correspondant

En plus des quotes ("", ’’) qui sont nécessaires pour le langage de script, la chaîne qui définit le motif doit être délimitée par un caractère identique, comme / ou #, et peut être suivie par une option Par exemple : # (.*) # /( ]*>)(.*?)( )/ Des options sont spécifiables : Par exemple : /( ]*>)(.*?)( )/ Expressions régulières : délimiteurs ↪ voir et i PCRE_CASELESS insensible à la casse u PCRE_UTF8 Les chaînes sont traitées en UTF-8 e PCRE_DOLLAR_ENDONLY Le caractère $ ne sera « réservé » que pour la fin de chaîne (sinon, $ correspond aussi aux fins de ligne)

Expressions régulières : symboles ↪ voir Et ^ Indique le début de la chaîne - exemple ^chat reconnaît une ligne qui commence par chat $ Indique la fin de la chaîne - exemple : chat$ reconnaît une ligne qui finit par chat. Le point indique n'importe quel caractère * Indique 0, 1 ou plusieurs occurrences du caractère ou de la classe précédente + Indique une ou plusieurs occurrences du caractère ou de la classe précédente ? Indique 0 ou une occurrence du caractère ou de la classe précédente [ ] [0-9] br[iu]n Délimiteur de classe : tous les caractères énumérés dans la classe - exemple : tous les caractères entre 0 et 9 - exemple : i ou u => trouve brun et brin - | ^ Dans [ ] : - pour de … à …, | pour l’alternative, ^sauf le caractère qui suit

Expressions régulières : caractères spéciaux (blancs, etc.) ↪ voir Et \n Indique le caractère qui code la « nouvelle ligne » \r Indique le caractère qui code le « retour chariot » ^ Indique le début de la chaîne - exemple ^chat reconnaît une ligne qui commence par chat $ Indique la fin de la chaîne - exemple : chat$ reconnaît une ligne qui finit par chat \b Indique une limite de mot dans une chaîne \d Indique un chiffre (caractère entre 0 et 9, donc identifque à [0-9] et [[:digit:]]) \D Indique la classe [^0-9], c’est-à-dire, qui n’est pas un chiffre \s Indique un espace blanc \t, \r, \n, \f \w Indique un mot ( correspond à [0-9a_zA-Z] )

chat|chien : correspond aux chaînes de caractères « chat » ou « chien » (et seulement à celles-ci), n'importe où dans le texte (exemple : « chat te »). [cC]hat|[cC]hien : correspond aux chaînes « chat », « Chat », « chien » ou « Chien » (et seulement à celles-ci), n'importe où dans le texte (exemple : « Chat » dans « Chat s et chien s »). chu+t : correspond à « chut », « chuut », « chuuut », etc., n’importe où dans le texte. a[ou]+ : correspond à « aou », « ao », « auuu », « aououuuoou », etc., n’importe où dans le texte. peu[xt]? : correspond à « peu », « peux » et « peut » (et seulement à ces chaînes, n’importe où dans le texte. La recherche retourne le texte le plus long possible en cas d’occurrences multiples à la même position). ^[st]ac : représente les chaînes « sac » et « tac » en début de ligne. [st]ac$ : représente les chaînes « sac » et « tac » en fin de ligne ou de texte (par exemple à l'intérieur de « ressac »). ^trax$ : représente la chaîne « trax » seule sur une ligne. Expressions régulières : exemples de $regex ↪ voir

Exemple : pour récupérer les valeurs définies pour le type ENUM Expressions régulières : en mySQL ↪ voir et 1 = TRUE ; 0 = FALSE

Exemple : pour rechercher des valeurs erronées dans une table, comme des textes qui qui contiennent une balise dans une colonne « nom » Expressions régulières : en mySQL ↪ voir et

 Références

QCM inspiré des questions des fiches de TD de tiprof