Cours du 15/11. Couche applica2on Perl, php, javascript 9p



Documents pareils
Couche applica,on. h.p- web Cgi javascript

Internet. Web Sécurité Optimisation

Zoom sur Newtest LDAP intégration

L3 informatique TP n o 2 : Les applications réseau

CGI et SSI. La programmation CGI. Sources. Objectifs. Qu'est ce qu'un programme CGI? CGI

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

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Plan. Le système de transfert de fichiers d'internet. Introduction aux systèmes de transfert de fichiers Le protocole FTP.

Serveurs et environnements de développement. Serveur Web

Application Web et J2EE

Internet Information Server. Conçu et réalisé par Denis Szalkowski Formateur consultant

Serveurs de noms Protocoles HTTP et FTP

Attaques applicatives

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Développement Web. Les protocoles

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

En Perl, les choses sont un peu différentes. Le cgi Perl ne peut être qu'un programme qui génère des sorties.

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Développement des Systèmes d Information

Dans l'épisode précédent

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

Tutoriel compte-rendu Mission 1

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)

Programmation Web. Madalina Croitoru IUT Montpellier

Langage W4. Note technique W4 Engine

Bases de données et Interfaçage Web

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

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

WebSSO, synchronisation et contrôle des accès via LDAP

(structure des entêtes)

Architectures en couches pour applications web Rappel : Architecture en couches

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Module http MMS AllMySMS.com Manuel d intégration

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Protocoles Applicatifs

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Stockage du fichier dans une table mysql:

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

Installation et configuration de Vulture Lundi 2 février 2009

TUTORIEL RADIUS. I. Qu est-ce que RADIUS? II. Création d un groupe et d utilisateur

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

Les différentes méthodes pour se connecter

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

TP JAVASCRIPT OMI4 TP5 SRC

Environnements informatiques

Outils de traitements de logs Apache

SERVEUR HTTP Administration d apache

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

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

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Rôles serveur Notion de Groupe de Travail Active Directory Utilisation des outils d administration Microsoft Windows Server 2008

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

PHP et les Bases de données - Généralités

Le Client/Serveur avec Enterprise Miner version 4

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

Séance d ED n 5 : HTML et JavaScript

Imprimantes et partage réseau sous Samba avec authentification Active Directory

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

VTX FTP. Transfert de fichiers business par FTP - Manuel de l'utilisateur. Informations complémentaires : info@vtx.

Le serveur HTTPd WASD. Jean-François Piéronne

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

NOTICE INSTALLATION. ARCHANGE WebDAV Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Configurer la supervision pour une base MS SQL Server Viadéis Services

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Module pour la solution e-commerce Magento

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

1/ Introduction. 2/ Schéma du réseau

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Transfert de fichiers (ftp) avec dreamweaver cs5 hébergement et nom de domaine. MC Benveniste

Protection des protocoles

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.

Pratique et administration des systèmes

1. La plate-forme LAMP

Bon ben voilà c est fait!

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

Couche application. La couche application est la plus élevée du modèle de référence.

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

GRETA SISR1 TP Installation et mise en place d un serveur FTP sous Windows Server 2013

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

Live box et Nas Synology

INF8007 Langages de script

Le service FTP. M.BOUABID, Page 1 sur 5

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Plan Général Prévisionnel (1/2) Internet et Outils L1/IO François Armand. Plan Général Prévisionnel (2/2) Unix, Réseau: Plan

Réseaux et protocoles Damien Nouvel

Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

Guide d installation de SugarCRM Open Source version 4.5.1

Axel Remote Management

Transcription:

Cours du 15/11 Couche applica2on Perl, php, javascript 9p

Traitement en perl q fichier perl H. Fauconnier M2-Internet 2

Paramètres q Les paramètres sont accessibles par l'intermédiaire de la variable d'environnement QUERY_STRING H. Fauconnier M2-Internet 3

Variables d'environnement q SERVER_SOFTWARE v Le nom et la version du serveur HTTP répondant à la requête. (Format : nom/version) q SERVER_NAME v Le nom d'hôte, alias DNS ou adresse IP du serveur. q GATEWAY_INTERFACE v La révision de la spécification CGI que le serveur utilise. (Format : CGI/révision) H. Fauconnier M2-Internet 4

Variables q SERVER_PROTOCOL v Le nom et la révision du protocole dans lequel la requête a été faite (Format : protocole/révision) q SERVER_PORT v Le numéro de port sur lequel la requête a été envoyée. q REQUEST_METHOD v La méthode utilisée pour faire la requête. Pour HTTP, elle contient généralement «GET» ou «POST». q PATH_INFO v Le chemin supplémentaire du script tel que donné par le client. Par exemple, si le serveur héberge le script «/cgi-bin/ monscript.cgi» et que le client demande l'url «http:// serveur.org/cgi-bin/monscript.cgi/marecherche», alors PATH_INFO contiendra «marecherche». q PATH_TRANSLATED v Contient le chemin demandé par le client après que les conversions virtuel physique aient été faites par le serveur. H. Fauconnier M2-Internet 5

Variables q SCRIPT_NAME v Le chemin virtuel vers le script étant exécuté. Exemple : «/cgibin/script.cgi» q QUERY_STRING v Contient tout ce qui suit le «?» dans l'url envoyée par le client. Toutes les variables provenant d'un formulaire envoyé avec la méthode «GET» sera contenue dans le QUERY_STRING sous la forme «var1=val1&var2=val2&...». q REMOTE_HOST v Le nom d'hôte du client. Si le serveur ne possède pas cette information (par exemple, lorsque la résolution DNS inverse est désactivée), REMOTE_HOST sera vide. q REMOTE_ADDR v L'adresse IP du client. q AUTH_TYPE v Le type d'identification utilisé pour protéger le script (s il est protégé et si le serveur supporte l'identification). H. Fauconnier M2-Internet 6

Variables q AUTH_TYPE v Le type d'identification utilisé pour protéger le script (s il est protégé et si le serveur supporte l'identification). q REMOTE_USER v Le nom d'utilisateur du client, si le script est protégé et si le serveur supporte l'identification. q REMOTE_IDENT v Nom d'utilisateur (distant) du client faisant la requête. Le serveur doit supporter l'identification RFC 931. Cette variable devraient être utilisée à des fins de journaux seulement. q CONTENT_TYPE v Le type de contenu attaché à la requête, si des données sont attachées (comme lorsqu'un formulaire est envoyé avec la méthode «POST»). q CONTENT_LENGTH v La longueur du contenu envoyé par le client. H. Fauconnier M2-Internet 7

Variables q HTTP_ACCEPT Les types de données MIME que le client accepte de recevoir. Exemple : text/*, image/jpeg, image/png, image/*, */* q HTTP_ACCEPT_LANGUAGE Les langages dans lequel le client accepte de recevoir la réponse. Exemple : fr_ca, fr q HTTP_USER_AGENT Le navigateur utilisé par le client. Exemple : Mozilla/5.0 (compatible; Konqueror/3; Linux) H. Fauconnier M2-Internet 8

Compléments Javascript q Code qui s'exécute du côté du client v calcul local v contrôle d'une zone de saisie v affichage d'alerte v fenêtres menus etc.. q Balise : <SCRIPT languge="javascript1.2"> le code... </SCRIPT> H. Fauconnier M2-Internet 9

Exemple: bonjour <HTML><HEAD> <TITLE>Très facile</title> </HEAD> <SCRIPT language="javascript1.2"> function bonjour() { alert ("Bonjour madame, bonjour monsieur"); } </SCRIPT> <BODY bgcolor="white" onload="bonjour();"> <H1>Bonjour</H1> </BODY></HTML> http://localhost/~hf/bjrjvs.html H. Fauconnier M2-Internet 10

Un peu plus: minicalcul <HTML> <HEAD> <TITLE>Petit calcul</title> </HEAD> <BODY bgcolor='white'> <script language='javascript1.2' src='calcul.js'></script> <script language='javascript1.2' src='fenetre.js'></script> <script language='javascript1.2' src='ctrl.js'></script> <CENTER><H1>Calcul</H1></CENTER> Un petit exemple de formulaire. <P> Création d'une <A href='#a' onclick='affichedoc();'>fenêtre avec JavaScript</A> H. Fauconnier M2-Internet 11

Suite <FORM ACTION='Simul.html' METHOD='POST' NAME='Simul'> <CENTER> <TABLE BORDER=3> <TR><TD>Argument 1 <TD> <INPUT TYPE='TEXT' SIZE=20 NAME='arg1' onchange='calcul();'></tr> <TR><TD>* Argument 2 <TD> <INPUT TYPE='TEXT' SIZE=20 NAME='arg2' onchange='calcul();'> </TR> <TR><TD>Résultat= <TD> <INPUT TYPE='TEXT' SIZE=20 NAME='res' > </TR> </TABLE> <INPUT TYPE='BUTTON' VALUE='Vérifier' onclick='ctrl();'> <INPUT TYPE='RESET' VALUE='Effacer tout' onclick=' if (!confirm("vraiment vous voulez effacer?")) exit;'> </CENTER> </FORM> </BODY> </HTML> http://localhost/~hf/simul.html H. Fauconnier M2-Internet 12

Fichiers js q Ctrl.js calcul function ctrl() { if (isnan(window.document.simul.res.value )) { alert ("Valeur incorrecte : " + document.simul.res.value + "?"); document.forms[0].res.focus(); } } function calcul() { v1=document.forms[0].arg1.value; v2=document.forms[0].arg2.value; document.forms[0].res.value = v2*v1 ; } H. Fauconnier M2-Internet 13

suite et fin q exemples/fenetre.js function affichedoc() { options = "width=300,height=200"; fenetre = window.open('','mu',options); } fenetre.document.open(); manuel = "<HTML><HEAD><TITLE>Documentation</TITLE></ HEAD>" + "<BODY bgcolor='white'>" + "Il n'y a pas besoin d'aide " + " c'est facile." + " Bonne chance!</body></html>"; fenetre.document.write(manuel); fenetre.document.close(); H. Fauconnier M2-Internet 14

Compléments: php q php est un langage de script pour les serveurs webs q de nombreuses fonctions permettent de traiter les requêtes http (en particulier des requêtes concernant des bases de données) q ici on est du côté du serveur H. Fauconnier M2-Internet 15

Exemple simple <HTML> <HEAD> <TITLE>Exemple très simple</title> </HEAD> <BODY> <H1>Exemple</H1> le <?php echo Date ("j/m/y à H:i:s");?> <P> <?php echo "Client :". $_SERVER['HTTP_USER_AGENT']. "<BR>"; echo "Adresse IP client:".$_server['remote_addr']."<br>"; echo "Server: ". $_SERVER['SERVER_NAME'];?> </BODY></HTML> http://localhost/~hf/exemplesimple.php H. Fauconnier M2-Internet 16

Résultat Exemple le 8/11/2006 à 15:54:29 Client :Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;.NET CLR 1.1.4322; InfoPath.1) Adresse IP client:127.0.0.1 Server: localhost H. Fauconnier M2-Internet 17

Reçu par le client <HTML> <HEAD> <TITLE>Exemple très simple</title> </HEAD> <BODY> <H1>Exemple</H1> le 8/11/2006 à 15:54:29 <P> Client :Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;.NET CLR 1.1.4322; InfoPath.1)<BR>Adresse IP client: 127.0.0.1<BR>Server: localhost </BODY></HTML> H. Fauconnier M2-Internet 18

Php q On est ici côté serveur: v les balises <?php> <?> sont interprétées par le serveur (apache par exemple) et servent à générer la page html reçue par le client q Mais surtout php permet v d'accéder aux variables d'environnement v d'utiliser de nombreuses fonctionnalités sessions, paramètres etc. q Php sert souvent d'interface pour MySql serveur simple de bases de données H. Fauconnier M2-Internet 19

Php q pas de typage ni de déclaration des variables q $v est remplacé par la valeur de v (et permet aussi l'affectation) q echo "$v"; q constantes define("pi, 3.1415); q types des variables v numériques $i=1; $v=3.14; v chaînes de caractères (expressions régulières) $nom="hugues"; ',",{} H. Fauconnier M2-Internet 20

php q Variables v Locales (à une fonction) v Globales v Super globales (disponibles dans tout contexte) v Static (garde sa valeur) v Variables dynamiques (le nom de la variable est une variable) $a='bonjour' $$a='monde' echo "$a ${$a}" echo "$a $bonjour" H. Fauconnier M2-Internet 21

php q tableaux v indicés $tab[0]="un"; $tab=array("un","deux","trois"); v associatifs $m=array("un"=>"one", "deux"=>"two"); $m["trois"]="three"; v next() prev() key() current do {echo "Clé=key($m).Valeur= current($m)"} while(next($mes)); foreach($m as $cle =>$val) {echo "Clé=$cle.Valeur=$val";} H. Fauconnier M2-Internet 22

php q Mais aussi (php4 et php5) v Programmation orientée objets Classes et Objets Liaison dynamique Constructeurs v Exceptions H. Fauconnier M2-Internet 23

Php q structures de contrôles v if v if else v while v do while v for v foreach break, continue H. Fauconnier M2-Internet 24

fonctions function Nom([$arg1, $arg2,...]) { corps } passage par valeur (et par référence &) exemples function Add($i,$j){ $somme= $i + $j; return $somme; } function Add($i,$j,&$somme){ $somme= $i + $j; } H. Fauconnier M2-Internet 25

Pour le serveur q tableaux associatifs prédéfinis v $_SERVER: environnement serveur REQUEST_METHOD QUERY_STRING CONTENT_LENGTH SERVER_NAME PATH_INFO HTTP_USER_AGENT REMOTE_ADDR REMOTE_HOST REMOTE_USER REMOTE_PASSWORD H. Fauconnier M2-Internet 26

Suite q Autres tableaux v $_ENV : environnement système v $_COOKIE v $_GET v $_POST v $_FILES v $_REQUEST (variables des 4 précédents) v $_SESSION v $GLOBALS les variables globales du script H. Fauconnier M2-Internet 27

Cookies et php <?php // Est-ce que le Cookie existe? if (isset($_cookie['compteur'])) { $message = "Vous êtes déjà venu {$_COOKIE['compteur']} fois ". "me rendre visite<br>\n"; // On incrémente le compteur $valeur = $_COOKIE['compteur'] + 1; } else { // Il faut créer le cookie avec la valeur 1 $message = "Bonjour, je vous envoie un cookie<br>\n"; $valeur = 1; } // Envoi du cookie SetCookie ("compteur", $valeur);?> H. Fauconnier M2-Internet 28

Cookies et php (fin) <HTML><HEAD> <TITLE>Les cookies</title> </HEAD> <BODY> <H1>Un compteur d'accès au site avec cookie</h1> <?php echo $message;?> </BODY></HTML> http://localhost/~hf/setcookie.php H. Fauconnier M2-Internet 29

En utilisant les sessions <?php // La fonction session_start fait tout le travail session_start();?> <HTML><HEAD> <TITLE>Les cookies</title> </HEAD> <BODY> <H1>Un compteur d'accès au site avec Session</H1> H. Fauconnier M2-Internet 30

Fin <?php if (!isset($_session['cp'])) { $_SESSION['cp']=1; echo "C'estlapremière fois,votre id est:". session_id()."<br>"; } else{ $_SESSION['cp']++; echo "C'est votre ".$_SESSION['cp']." n-ième connexion"; if($_session['cp']>10){ echo "on vous a trop vu"."<br>"; session_destroy(); } }?> </BODY></HTML> http://localhost/~hf/sessionphp.php H. Fauconnier M2-Internet 31

session q session_start() q session_destroy() q session_id() v on peut associer des variables à la session par le tableau associatif $_SESSION v elle sera accessible à chaque session_start() jusqu'au session_destroy() pour toute connexion qui fournit le session_id(). H. Fauconnier M2-Internet 32

Couche application q FTP H. Fauconnier M2-Internet 33

FTP: the file transfer protocol user at host FTP user interface FTP client local file system file transfer FTP server remote file system q transfer file to/from remote host q client/server model v client: side that initiates transfer (either to/from remote) v server: remote host q ftp: RFC 959 q ftp server: port 21 H. Fauconnier M2-Internet 34

FTP: separate control, data connections q FTP client contacts FTP server at port 21, TCP is transport protocol q client authorized over control connection q client browses remote directory by sending commands over control connection. q when server receives file transfer command, server opens 2 nd TCP connection (for file) to client q after transferring one file, server closes data connection. FTP client TCP control connection port 21 TCP data connection port 20 FTP server server opens another TCP data connection to transfer another file. control connection: out of band FTP server maintains state : current directory, earlier authentication H. Fauconnier M2-Internet 35

FTP commands, responses Sample commands: q sent as ASCII text over control channel q USER username q PASS password q LIST return list of file in current directory q RETR filename retrieves (gets) file q STOR filename stores (puts) file onto remote host Sample return codes q status code and phrase (as in HTTP) q 331 Username OK, password required q 125 data connection already open; transfer starting q 425 Can t open data connection q 452 Error writing file H. Fauconnier M2-Internet 36