IRT Programmation côté serveur

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

Download "IRT 2009-2010 Programmation côté serveur"

Transcription

1 UPMC IRT c by C.Queinnec 1/77 Revision: 1.24 IRT Programmation côté serveur C.Queinnec

2 UPMC IRT c by C.Queinnec 2/77 Plan Cours 1 et 2 : HTTP, CGI Cours 3, 4 et 5 : Symfony

3 UPMC IRT c by C.Queinnec 3/77 HTML (rappels) RAPPELS D HTML Langage de mise en page (ou plutôt en écran) de textes avec (un peu) structuration de données (cf. XML) langage parenthésé à balises balises spécialisées pour interactions côté client Note : HTML 2, 3, 4, XHTML etc.

4 UPMC IRT c by C.Queinnec 4/77 Formulaires RAPPELS D HTML Des balises existent mettant en place des «widgets» de saisie d information au sein d un (ou plusieurs) formulaire(s) (pour form) : champ de texte (sur une ou plusieurs lignes), champ sans écho (pour mot de passe), boutons radio, case à cocher, menu, bouton d envoi de fichier, bouton caché, boutons d envoi, de ré-initialisation.

5 UPMC IRT c by C.Queinnec 5/77 RAPPELS D HTML Syntaxe d un formulaire par l exemple <form name= nom du formulaire method= GET ou POST enctype= application/x-www-form-urlencoded ou multipart/form-data action= url > Votre nom: <input type= textfield name= t1 value= votre nom size=20 maxlength=30> Votre <strong>raison</strong> de vivre: <textarea name= t2 rows=4 cols=40> ecrire ici </textarea> Votre mot de passe: <input type= password name= t3 size=10> Votre sexe: Homme:<input type= radio name= t4 value= male checked> Femme:<input type= radio name= t4 value= femelle > Votre etat: fatigue: <input type= checkbox name= t5 value= fatigue > serein: <input type= checkbox name= t6 value= serein > <input type= file name= t7 size=50 maxlength=80> <select name= t8 ><option><em>a</em> <option selected>b</select> <input type= hidden name= t9 value=des caracteres > <input type= submit name= doit value= Envoyer > <input type= reset value= Re-initialiser > </form>

6 RAPPELS D HTML UPMC IRT c by C.Queinnec 6/77

7 UPMC IRT c by C.Queinnec 7/77 RAPPELS D HTML Caractéristiques communes Tous les widgets demandant de l information ont un nom, ils peuvent avoir une valeur par défaut, ainsi que quelques paramètres pour fignoler leur apparence. La syntaxe n est pas très uniforme (notamment les balises textarea et select).

8 UPMC IRT c by C.Queinnec 8/77 Ce qui se passe RAPPELS D HTML 1 Quand un navigateur reçoit un formulaire, il interprète le source HTML et affiche le texte et les widgets. 2 Il joue ensuite le rôle d un éditeur de texte pour les widgets de texte (balises textfield ou textarea ou password) (en Netscape, Mozilla c est un petit Emacs). 3 Il s occupe également des coches, des choix dans les menus déroulants etc. 4 En local, il sait remettre le formulaire dans son état initial (avec le bouton de ré-initialisation). 5 Enfin, quand le bouton d envoi est pressé, il sait envoyer les informations recueillies. Le serveur n est donc pas sollicité pendant toute la durée où l utilisateur remplit le formulaire.

9 UPMC IRT c by C.Queinnec 9/77 Messages HTTP HTTP start line CR LF name:value CR LF autant que de parametres HTTP CR LF message body Pour les requêtes, la première ligne est : method SP uri SP HTTP/1.version La méthode peut être : GET ou HEAD (obligatoirement implantées par le serveur) ou encore OPTIONS, POST, PUT, DELETE, TRACE, CONNECT ou encore autre chose. Le second champ peut être une URL complète ou juste un chemin d accès (dans ce dernier cas, le paramètre HTTP Host est recommandé).

10 UPMC IRT c by C.Queinnec 10/77 HTTP Pour les réponses, la première ligne est : HTTP/1.version SP code SP paraphrase Le code s exprime en 3 chiffres et est humainement lisible juste après. 1xx en cours de traitement 2xx succès 3xx redirection 4xx erreur client 5xx erreur serveur

11 UPMC IRT c by C.Queinnec 11/77 Paramètres HTTP HTTP Le nom du paramètre n est pas sensible à la casse. Il peut y avoir des blancs superflus juste après le : et avant le CR LF. L ordre des paramètres n est pas important mais le plus souvent du plus général au plus particulier. Il est possible de donner plusieurs fois un même paramètre (ordre signifiant donc). Foo: a Bar: c Foo: b Foo: a, b Bar: c

12 UPMC IRT c by C.Queinnec 12/77 HTTP Classification des paramètres décrivant des généralités Date : décrivant la connexion Connection : Max-Forwards : (et méthode OPTIONS) décrivant le serveur (ou le client) Accept : Accept-Charset : Accept-Encoding : Accept-Language : User-Agent : Server : décrivant le message (la requête ou la réponse) Transfer-Encoding : From : Host : If-Modified-Since : Retry-After : Referer : décrivant une ressource dans le message Content-Type : Location : Age : ETag : If-None-Match : Allow : Content-Encoding : Content-Length : Content-MD5 : Content-Language : Expires : Last-Modified : suggérant des règles de transmission Pragma : Cache-Control :

13 UPMC IRT c by C.Queinnec 13/77 HTTP Entité dans corps de message Le type MIME (pour Multipurpose Internet Mail Extensions) classifie les sortes d entité. Originellement fait pour passer des fichiers par courrier électronique (7bits, 100K). Syntaxiquement : catégorie/nature text/plain text/html text/rtf image/gif image/png audio/ video/ application/postscript application/x-dvi application/rtf application/vnd.ms-excel

14 UPMC IRT c by C.Queinnec 14/77 HTTP Ce type est utilisé dans le paramètre HTTP Content-Type et peut être accompagné d options comme : Content-Type: text/html; charset=iso Fichier.mime.types pour associer des applications (ou actions) à ces types. Cf. aussi KDE, Gnome, etc.

15 UPMC IRT c by C.Queinnec 15/77 Méthodes HTTP Les méthodes GET ou HEAD (obligatoirement implantées par le serveur) doivent être idempotentes c est-à-dire sans effet de bord. Les méthodes POST, PUT, DELETE ne sont pas idempotentes. L uri de POST indique le processus qui traitera la requête, l uri de PUT désigne le nom de la ressource à créer. La méthode TRACE permet d inspecter la connexion à la manière d un ping ou d un traceroute. Remarque : pas de DIR en HTTP!

16 UPMC IRT c by C.Queinnec 16/77 Quelques exemples HTTP GET / HTTP/1.0 GET HTTP/1.0 If-Modified-Since: Sun, 06 Nov :49:37 GMT

17 UPMC IRT c by C.Queinnec 17/77 HTTP GET /licence/2001/licence/public/module.php?id=6 HTT Accept-Language: fr, en Pragma: no-cache Accept: image/gif, image/x-xbitmap, image/jpeg, imag Accept-Charset: iso ,*,utf-8 Host: Accept-Encoding: gzip User-Agent: Mozilla/4.78 [en] (X11; U; Linux Proxy-Connection: Keep-Alive If-Modified-Since: Mon, 31 Dec :14:29 GMT; le Referer:

18 UPMC IRT c by C.Queinnec 18/77 HTTP Envoi des informations au serveur Les informations recueillies (coches, choix, textes, fichiers) sont conditionnées pour être envoyées au serveur (spécifié par l URL de l attribut action de la balise form). Attention, souvent les navigateurs n envoient de l information que si elle a été saisie ou modifiée. L encodage par défaut est application/x-www-form-urlencoded. Les valeurs sont conditionnées sous la forme d une chaîne (avec les conventions d encodage propres aux URL (+, %xy, &) : nom=valeur&nom=valeur&nom=valeur

19 HTTP UPMC IRT c by C.Queinnec 19/77

20 HTTP UPMC IRT c by C.Queinnec 20/77

21 UPMC IRT c by C.Queinnec 21/77 HTTP Cette chaîne peut être envoyée à l URL sous la forme d une requête HTTP de type GET : GET url?nom=valeur&nom=valeur&nom=valeur...autres parametres de requete ou de type POST : POST url Content-Type: application/x-www-form-urlencoded Content-Length: 32...autres parametres de requete nom=valeur&nom=valeur&nom=valeur

22 UPMC IRT c by C.Queinnec 22/77 HTTP Enfin existe encore l encodage multipart/form-data POST url Content-Type: multipart/form-data; boundary=0xkhtmlboundary...autres parametres de requete --0xKhTmLbOuNdArY Content-Disposition: form-data; name="n" Moi --0xKhTmLbOuNdArY Content-Disposition: form-data; name="do" Envoyer --0xKhTmLbOuNdArY--

23 UPMC IRT c by C.Queinnec 23/77 HTTP Les transports de type POST sont les plus sûrs (parce qu ils sont insensibles à la taille des données (ce qui n est pas le cas de GET) et permettent de spécifier l alphabet utilisé (pour les lettres accentuées)), l encodage multipart/form-data sait envoyer des fichiers ce que ne sait pas faire application/x-www-form-urlencoded mais impose le recours à une bibliothèque pour l extraction des paramètres.

24 Côté serveur HTTP Le serveur doit pouvoir fournir à une application les couples nom-valeur quelque soit l encodage et le conditionnement (type MIME) Directive Status: 200 super! pour indiquer le code. UPMC IRT c by C.Queinnec 24/77

25 UPMC IRT c by C.Queinnec 25/77 Pages dynamiques HTTP L interprétation de l URL est à la discrétion du serveur. La décoder suivant le système de fichiers du serveur est une option simple mais ce n est pas la seule. On peut synthétiser la réponse et ainsi avoir des pages dynamiques. Un jeu de convention pour transporter des paramètres (ou des fichiers) et lancer, côté serveur, les traitements appropriés. Limitation de la taille d une URL, visibilité des paramètres, non idempotence des requêtes GET.

26 HTTP UPMC IRT c by C.Queinnec 26/77

27 UPMC IRT c by C.Queinnec 27/77 Informations HTTP La requête comporte de nombreux points où passer de l information : l URI, la chaîne des paramètres de requête (ou query-string), les paramètres HTTP, le corps du message.

28 UPMC IRT c by C.Queinnec 28/77 HTTP Toute bibliothèque raisonnable permet d obtenir toutes ces informations : l uri (ou ses divers constituants (protocole, hôte, port, chemin (chemin telquel, inteprété par rapport au système de fichiers), les paramètres de requête (tous (en table de hachage) ou un par un) les paramètres HTTP (tous ou un par un) le corps du message (comme un flux ou si c est une requête POST, comme une suite de paramètres de requête (tous ou un par un) Attention, pour tous les paramètres de tout type, un nom mène à une suite (ordonnée) de valeurs (des chaînes) (souvent une seule mais pas toujours). Certains paramètres HTTP influencent le décodage des autres parties du message.

29 UPMC IRT c by C.Queinnec 29/77 HTTP les grandes étapes d un serveur 1 décodage url (de la gauche vers la droite) 2 décodage de la chaîne de requête et des paramètres http 3 recherche fichier/programme droits d accès, réécriture, paramétrage, 4 détermination type mime du résultat suffixe du fichier, règles locales (.htaccess) analyse du début de la réponse 5 génération du corps de la réponse 6 en HTTP/1.0, fermeture de la connexion

30 Codes d HTTP HTTP 200 OK 201 Created (+ Location pour URI canonique) 202 Accepted (+ Location pour URI de contrôle) 204 No Content (la représentation est vide) 301 Moved Permanently (+ Location) 303 See Other (+ Location pour le contenu de la réponse) 304 Not Modified 307 Temporary Redirect (+ Location pour re-soumettre la requête) 400 Bad Request 404 Not Found 405 Method Not Allowed 406 Not Acceptable (pas de représentation acceptable) 409 Conflict 410 Gone 415 Unsupported Media Type 500 Internal Server Error 503 Service Unavailable UPMC IRT c by C.Queinnec 30/77

31 UPMC IRT c by C.Queinnec 31/77 Interface CGI INTERFACE CGI Lancer des programmes extérieurs en leur donnant les informations de la requête cf. standard Les premières lignes sont analysées et rendues sous la forme de variables d environnement : SERVER_SOFTWARE SERVER_NAME GATEWAY_INTERFACE SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST REMOTE_ADDR CONTENT_TYPE CONTENT_LENGTH

32 UPMC IRT c by C.Queinnec 32/77 INTERFACE CGI Les paramètres HTTP sont analysés et rendus sous forme de variables d environnement préfixés par HTTP_. HTTP_ACCEPT HTTP_USER_AGENT Le corps du message est fourni dans le flux d entrée standard du programme. La longueur de ce flux se trouve dans la variable CONTENT_LENGTH, sa nature dans CONTENT_TYPE. Le serveur analyse la sortie standard du programme. Les première lignes doivent être des paramètres HTTP (au minimum Content-Type) éventuellement précédé du code HTTP de retour (sinon il sera positionné à 200 si tout se passe bien par le serveur) puis une ligne vide puis le corps du message.

33 UPMC IRT c by C.Queinnec 33/77 Exemples de CGI INTERFACE CGI Rendre la date : #! /bin/sh echo Content-Type: text/plain echo date Autre exemple de script CGI, aussi en shell : #! /usr/bin/tail +1 Content-Type: text/html <html><head><title>page statique</title></head> <body>ceci est une page statique.</body></html>

34 UPMC IRT c by C.Queinnec 34/77 INTERFACE CGI Pour voir ce que l interface CGI a placé dans l environnement : #! /bin/sh echo Content-Type: text/html echo echo <html><head><title>environnement CGI</title> echo </head><body><pre> printenv echo </pre></body></html> CGI est lent mais simple! Voir aussi FastCGI. Principal langage pour CGI : Perl (mais mod_perl)

35 UPMC IRT c by C.Queinnec 35/77 ÉTAT CÔTÉ SERVEUR Maintenir un état côté serveur HTTP est un protocole sans état. Pour maintenir un état il faut être capable de déterminer si deux requêtes viennent du même utilisateur. bouton caché cookie réécriture d URL session SSL

36 UPMC IRT c by C.Queinnec 36/77 Bouton caché ÉTAT CÔTÉ SERVEUR Si la réponse du serveur est un formulaire : < reponse serveur <form...> <input type= hidden name= n value= v > </form> > nouvelle requete client n=v Problèmes : ne fonctionne que pour les formulaires modifiable par l utilisateur

37 UPMC IRT c by C.Queinnec 37/77 Cookies ÉTAT CÔTÉ SERVEUR But : tracer les utilisateurs en stockant de l information dans le client. < OK Set-Cookie: NGUserID=3e17099b ; expires=wednesday, 30-Dec :00:00 GMT; path=/; domain=.hi-media.com > GET Cookie: NGUserID=3e17099b Limitation en taille et nombre (20 cookies de 4Ko). Attention à la comparaison de noms d hôtes. Sans date de péremption, un cookie meurt quand on quitte son navigateur.

38 UPMC IRT c by C.Queinnec 38/77 ÉTAT CÔTÉ SERVEUR Documentation simple sur cookie Pour des cookies plus modernes : < OK Set-Cookie: NGUserID=3e170; Max-Age=300; Path=/; Domain=.hi-media.com; secure; Comment="Le cookie moderne!"; Version= > GET Cookie: $Version="1"; NGUserID=3e170; other=42 RFC nouveau cookie Principe : ne jamais faire confiance à l information venant du client!

39 UPMC IRT c by C.Queinnec 39/77 Cookie en PHP ÉTAT CÔTÉ SERVEUR setcookie( nom, valeur,...); $_COOKIE[ nom ] // cookies recus

40 UPMC IRT c by C.Queinnec 40/77 Réécriture d URL ÉTAT CÔTÉ SERVEUR < reponse serveur href= < transforme en href= href= href= href= href=

41 UPMC IRT c by C.Queinnec 41/77 ÉTAT CÔTÉ SERVEUR Réécriture d URL (problèmes) toutes les pages sont dynamiques puisque toutes les urls doivent être réécrites. nécessité de coopération entre toutes les pages pour adopter un schéma commun d encodage l information est modifiable par l utilisateur

42 UPMC IRT c by C.Queinnec 42/77 Autres techniques ÉTAT CÔTÉ SERVEUR Nouveau, pour traquer le client : utilisation des champs HTTP Last-Modified ou ETags. Cookies croisés

43 UPMC IRT c by C.Queinnec 43/77 Authentification ÉTAT CÔTÉ SERVEUR Accès à une zone protégée : > GET url < unauthorized WWW-Authenticate: Basic realm="secret P6" > GET url Authorization: Basic base64("user :password") < page (en clair) > GET url/sousurl Authorization: Basic base64("user :password") < page (en clair)

44 UPMC IRT c by C.Queinnec 44/77 ÉTAT CÔTÉ SERVEUR liberté du client pour la demande de nom/mot de passe. liberté du serveur de la vérification nom/mot de passe (fichier, base n?dbm, base de données, etc.) Pas de déconnexion prévue. Autre méthode : Digest (avec défi ou nonce).

45 UPMC IRT c by C.Queinnec 45/77 HTTPS ÉTAT CÔTÉ SERVEUR Forcer l usager à utiliser une communication cryptée (SSL, TLS) par le protocole HTTPS. Comment est négocié un canal crypté non observable (il y a des variantes) :

46 UPMC IRT c by C.Queinnec 46/77 ÉTAT CÔTÉ SERVEUR ClientHello > < ServerHello < Certificat < ServerKeyExchange? < CertificateRequest? < ServerHelloDone Certificate? > ClientKeyExchange > ChangeCypherSpec > Finished -----chiffre > < ChangeCypherSpec <---chiffre Finished Sur le canal crypté passe de multiples requêtes (en HTTP/1.1). Tant que le canal reste ouvert, l interlocuteur n a pas changé. Enfin on peut utiliser de l authentification via HTTPS.

47 UPMC IRT c by C.Queinnec 47/77 Session ÉTAT CÔTÉ SERVEUR Demander au conteneur de gérer lui-même, par tous les moyens à sa disposition, le suivi des usagers. session_start(); $_SESSION[ cle ] = valeur ; //Changement d identifiant de session session_regenerate_id(); session_destroy(); unset($_session); L objet session est une table associative permettant d insérer des attributs.

48 UPMC IRT c by C.Queinnec 48/77 Redirection ÉTAT CÔTÉ SERVEUR Parmi les codes de retour 3xx : 301 Moved permanently ou 302 Found permettent les redirections permanentes ou temporaires > GET url < Moved permanently Location: nouvelle-url > GET nouvelle-url < page

49 UPMC IRT c by C.Queinnec 49/77 ÉTAT CÔTÉ SERVEUR Authentification côté client > GET dom/url < Moved temporarily Location: authurl?oldurl=dom/url > GET authurl?oldurl=dom/url < formulaire a remplir > POST checkurl et information oldurl=dom/url < Moved temporarily Location: dom/url Set-Cookie: Clef=912436tal; Domain=dom; Path=url > GET dom/url Cookie: Clef=912436tal

50 UPMC IRT c by C.Queinnec 50/77 SSO (single sign on) ÉTAT CÔTÉ SERVEUR CAS, OpenId 307 CAS,OpenID auth form 307+cookie checkcookie getprofileinfo

51 UPMC IRT c by C.Queinnec 51/77 Cache (un peu) ÉTAT CÔTÉ SERVEUR Champ HTTP Expires et mécanisme de validation > GET dom/url < OK Date: Last-Modified: Expires: Cache-Control: maxage= ETag: opaque +user tracking > GET dom/url If-Modified-Since: If-None-Match: opaque < Not modified

52 UPMC IRT c by C.Queinnec 52/77 ÉTAT CÔTÉ SERVEUR > PUT dom/url par exemple If-Match: opaque < Precondition failed Et inversement pour ne rien retenir : > GET dom/url < OK Pragma: no-cache en http 1.0 Cache-Control: no-cache en http 1.1 maintenant Cache-Control: no-store en http 1.1 maintenant

53 UPMC IRT c by C.Queinnec 53/77 Conclusions ÉTAT CÔTÉ SERVEUR Ne jamais faire confiance à l information provenant de l utilisateur. C est le premier commandement de l Open Web Application Security Project Utiliser une information de session correspondant à une clé d indexation en base côté serveur. Utiliser des clés non forgeables. Changer souvent de clés (datées). Invalider les anciennes clés.

54 GÉNÉRATION D HTML UPMC IRT c by C.Queinnec 54/77

55 UPMC IRT c by C.Queinnec 55/77 GÉNÉRATION D HTML Comment engendrer de l HTML? Écrire un programme (dans le langage X) qui engendre de l HTML revient à mélanger des chaînes HTML statiques avec quelques parties calculées par des expressions du langage X. En Perl, par exemple, print "<p>bonjour "; print $prenom, " ", $nom; print ",</p> <div> Comment allez-vous? <br>... ";

56 UPMC IRT c by C.Queinnec 56/77 GÉNÉRATION D HTML Le même en C : int main () { printf("<p>bonjour %s %s,</p>\n" "<div> Comment allez-vous? <br>\n" "... ", prenom, nom); }

57 UPMC IRT c by C.Queinnec 57/77 GÉNÉRATION D HTML ou encore en PHP : <p>bonjour <?php echo $prenom?>, <?php echo $nom?> <div> Comment allez-vous? <br>... ou en Perl encore mais en utilisant la bibliothèque CGI : print p("bonjour $prenom $nom,"), "<div> "; = ["comment", "allez", "vous"]; print join(" "?", br, "..."; S il y a peu de parties variantes, si le langage a des chaînes sur une seule ligne, des expressions d impression verbeuses, le code devient vite illisible.

58 UPMC IRT c by C.Queinnec 58/77 Métissage GÉNÉRATION D HTML L idée (éculée) : écrire dans le langage majoritaire et inclure des îlots dans un autre langage. C et cpp (pour les macros) notation backquote en Lisp/Scheme programmation littéraire (Pascal + T E X) Java et javadoc (ou icontract) : commentaires structurés X et SQL (par exemple, jsql = Java + SQL)...

59 UPMC IRT c by C.Queinnec 59/77 Métissage avec HTML GÉNÉRATION D HTML Ici le mélange qui nous intéresse est entre HTML et un langage de programmation. Concrètement, on souhaite écrire quelque chose comme : <html><head><title> Langage metis </title> </head><body> Bonjour!INSERER ICI LE NOM EVENTUELLEMENT CALCULE!, Comment allez-vous <br>...

60 UPMC IRT c by C.Queinnec 60/77 Buts du métissage GÉNÉRATION D HTML diminuer la distance entre l intention et le code séparer la présentation HTML (graphiste) des parties programmatiques (développeur) utiliser des outils différents pour des tâches différentes (Éditeur de texte ou outil de dessin graphique)

61 UPMC IRT c by C.Queinnec 61/77 GÉNÉRATION D HTML Exemples de métissage avec HTML JSP = HTML et Java (Java Server Page) mais aussi WebMacro, Cocoon, Struts,... taglib Perl + HTML : Embperl, Mason, Apache : :ASP, HTML : :Template, Template Toolkit PHP = HTML et une sorte de Perl (Personal Home Page) Shervlet = HTML + sh

62 UPMC IRT c by C.Queinnec 62/77 GÉNÉRATION D HTML Techniques de métissage interprétation (PHP) compilation (JSP, Shervlet) et aussi tous les intermédiaires compilation à la volée compilation paresseuse pré-compilation compilation vers du code-octet puis interprétation Une technique simple passe par un compilateur traduisant le langage X+HTML en X. Par exemple, une JSP est compilée en une servlet (une classe Java). Sans oublier les problèmes de performance : patron, cache de compilation, cache de résultats.

63 UPMC IRT c by C.Queinnec 63/77 Shervlet = sh+html GÉNÉRATION D HTML <html><head><title> shervlet </title></head><body> Il est <?sh date?> en ce moment<br> dit <?sh uname -a?></body></html> Mais aussi des constructions avec des enchevêtrements plus complexes comme alternative ou itération : <html><head><title> shervlet </title></head><body> <?sh if [ "$REMOTE_HOST" = ] ; then?> Salut vieille branche, <?sh ;else?> Bonjour, <?sh fi?> </body></html>

64 UPMC IRT c by C.Queinnec 64/77 Compilation de sh+html GÉNÉRATION D HTML <html><head><title> shervlet </title></head><body> Il est <?sh date?> en ce moment<br> dit <?sh uname -a?></body></html> se compile en #! /bin/sh echo -n "<html><head><title> shervlet </title></h Il est " date echo -n " en ce moment<br> dit " uname -a echo -n "</body></html> "

65 UPMC IRT c by C.Queinnec 65/77 GÉNÉRATION D HTML Automate (un peu simplifié) de compilation (cf. compilateur)

66 UPMC IRT c by C.Queinnec 66/77 GÉNÉRATION D HTML Langages plus compliqués L insertion est plus complexe dans un langage qui distingue instructions, expressions et déclarations (sans oublier les directives de compilation). En Java, par exemple, les JSP distinguent différents types d îlots. directive %> <%! declaration %> <% instruction; %> <%= expression %> Meme chose que <% out.print(expression); %>

67 UPMC IRT c by C.Queinnec 67/77 Caractères JEUX DE CARACTÈRES Jeux de caractères : ASCII (7bits), latin1 = ISO , latin9 = ISO , Unicode et ISO/IEC En Unicode, tous les caractères ont un nom canonique comme «U+03BC GREEK SMALL LETTER MU» et un numéro (20 à 22 bits suffisent). Les jeux de caractères n ont rien à voir avec les langues (grec, cyrillique, français de France ou du Québec) codés comme fr_fr, fr_ca ou GR. En jargon, locale régissant, nombres, argent, date, ordre alphabétique, etc. (cf. variables LC_DATE, LC_ALL, etc.)

68 UPMC IRT c by C.Queinnec 68/77 Glyphes JEUX DE CARACTÈRES Unicode n est pas concerné par les descriptions graphiques qui se nomment des glyphes. 2673: RECYCLING SYMBOL FOR TYPE-1 PLASTICS polyethylene terephthalate 2674: RECYCLING SYMBOL FOR TYPE-2 PLASTICS high density polyethylene

69 UPMC IRT c by C.Queinnec 69/77 JEUX DE CARACTÈRES Relations entre caractères Certains caractères ont des rapport entre eux : appartenance à un alphabet national correspondance minuscule/majuscule reconnaissance chiffre/lettre/ponctuation ordre des caractères ordre contigü pour les chiffres composition de caractères (comme «U+00E0 LATIN SMALL LETTER A WITH GRAVE» est composé de «U+0061 LATIN SMALL LETTER A» et «U+0300 COMBINING GRAVE ACCENT») équivalence de symboles (Ohm et Oméga) règles de césure

70 UPMC IRT c by C.Queinnec 70/77 Codages JEUX DE CARACTÈRES UCS-2 : chaque caractère unicode est codé en deux octets. Les bigrammes sont réservés (et notamment FEFF pour lutter contre les représentations gros- ou petit-boutiennes). Java (et d autres) est par défaut en ISO mais \uxyzt désigne un caractère unicode. UTF-8 (même style de schéma pour UTF-16) : 0abcdefg 110abcde 10fghijk 1110abcd 10efghij 10klmnop Ainsi -> abcdefg -> abcdefghijk -> abcdefghijklmnop A é e

71 UPMC IRT c by C.Queinnec 71/77 Codage ISO JEUX DE CARACTÈRES ISO est un jeu de 256 caractères pour l Europe de l ouest, ISO pour l Europe de l est, etc.

72 UPMC IRT c by C.Queinnec 72/77 Codage ISO JEUX DE CARACTÈRES L ISO est aussi connu sous le nom de «Latin9» (ou encore «Latin0»). C est celui qu il faut utiliser de préférence à l ISO (dit «Latin1»).

73 UPMC IRT c by C.Queinnec 73/77 Le grand jeu JEUX DE CARACTÈRES 1 octets (un (ou plusieurs) octet(s) pour un caractère) 2 caractères (une abstraction en mémoire de l application) 3 glyphes (suivant polices) octets UTF8 quoted printable échappement \uxyzt octets +plan ISO 8859 x Unicode polices glyphes glyphes

74 UPMC IRT c by C.Queinnec 74/77 Comment le dire? JEUX DE CARACTÈRES En Emacs, première ligne -*- coding : utf-8 -*- En Unix : luit : conversion de/vers UTF-8 En XML, attribut encoding <?xml version="1.0" encoding="is " standalone="no"?> en HTTP : Content-Type: text/html; charset=utf-8

75 UPMC IRT c by C.Queinnec 75/77 Principes sécuritaires SÉCURITÉ D après Open Web Application Security Project : Minimiser la surface attaquable Choix sûrs par défaut Moindre privilège Défense en profondeur Rattrapage d erreur sûr Séparation des rôles Pas de sécurité par obscurité Simplicité Automatisation des tests de correction de vulnérabilité

76 UPMC IRT c by C.Queinnec 76/77 Attaques (nombreuses) SÉCURITÉ sql injection exemple (surtout en PHP) : select * from T where nom = $info avec info= or true or = ne jamais faire confiance aux informations provenant des utilisateurs filtrer (black, white lists) select * from T where nom =? langages teintés (Perl) xss (Cross Site Scripting) 1 X injecte du javascript J dans un texte stocké côté serveur S 2 A reçoit de S le texte et exécute le javascript J 3 J peut engendrer une requête vers un site S qui sera émise avec les cookies de A 4 J peut renvoyer à X les résultats obtenus

77 UPMC IRT c by C.Queinnec 77/77 Tests TESTS De multiples points de tests : Selenium IDE LWP, HttpUnit Findbugs,JDepend,PMD Perl:Critic,Test::More Cactus junit cohérence Contrôle JS GreaseMonkey Firebug tests de charge tests de sécurité Vue Modèle Cactus

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

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion HTTP IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin HTTP Introduction et architecture Messages Authentification Conclusion 1 HTTP Introduction et architecture Hypertext Transfert Protocol URI (Uniform

Plus en détail

Le protocole HTTP. Olivier Aubert 1/40

Le protocole HTTP. Olivier Aubert 1/40 Le protocole HTTP Olivier Aubert 1/40 Liens http://www.jmarshall.com/easy/http/ Références : RFC1945 (HTTP1.0), RFC2616 (HTTP1.1), RFC822 (format des entêtes), RFC2396 (syntaxe des URL), RFC1521 (types

Plus en détail

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

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

Pages WWW interactives et CGI

Pages WWW interactives et CGI Pages WWW interactives et CGI cgi-intro Pages WWW interactives et CGI Code: cgi-intro Originaux url: http://tecfa.unige.ch/guides/tie/html/cgi-intro/cgi-intro.html url: http://tecfa.unige.ch/guides/tie/pdf/files/cgi-intro.pdf

Plus en détail

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

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068 HTTP/1.1 RFC 2068 1 Caractéristiques Niveau application Sans état Tout transfert de données Au dessus du protocole TCP Largement utilisé dans le World Wide Web Utilise les normes : URI (Uniform Resource

Plus en détail

A6 - HTTP ESIROI 2014-2015

A6 - HTTP ESIROI 2014-2015 A6 - HTTP ESIROI 2014-2015 HTTP HyperText Transfer Protocol Protocole synchrone 3 version : HTTP/0.9 (obsolète) HTTP/1.0 (rare) HTTP/1.1 HTTP - fonctionnement Requête Réponse Icones : http://www.visualpharm.com/

Plus en détail

INSA - ASI TechnoWeb : Serveur Web et protocole HTTP 1/40. Technologie Web. Serveur Web et protocole HTTP. Alexandre Pauchet

INSA - ASI TechnoWeb : Serveur Web et protocole HTTP 1/40. Technologie Web. Serveur Web et protocole HTTP. Alexandre Pauchet INSA - ASI TechnoWeb : Serveur Web et protocole HTTP 1/40 Technologie Web Serveur Web et protocole HTTP Alexandre Pauchet INSA Rouen - Département ASI BO.B.RC.18, pauchet@insa-rouen.fr INSA - ASI TechnoWeb

Plus en détail

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ...

HTTP 1.1. HyperText Transfer Protocol ... ... TCP IP ... HTTP 1.1 Place de http dans le modèle osi : HyperText Transfer Protocol...... TCP IP...... HTTP est un protocole «sans état» : chaque page WEB est transmise dans une connexion séparée (sauf pour les connections

Plus en détail

Le Web. Présentation du langage HTML et du protocole HTTP

Le Web. Présentation du langage HTML et du protocole HTTP Le Web Présentation du langage HTML et du protocole HTTP Une petite histoire du web 1989 1ère note relative au web «hypertexte et le CERN» au sujet du World Wide Web. 1991 premier serveur web sur l Internet,

Plus en détail

Programmation Web. Thierry Hamon

Programmation Web. Thierry Hamon 1/27 Programmation Web Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail

Web et présentation d information spatiale

Web et présentation d information spatiale Université de La Rochelle LUP-SIG 2004-2005 Programmation SIG et Internet Cartographique Web et présentation d information spatiale Moteurs de recherche et formulaires HTML Jean-Michel FOLLIN jmfollin@univ-lr.fr

Plus en détail

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1 Le protocole HTTP 10 minutes pour comprendre HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1 http://tic01.tic.ec-lyon.fr/~muller/cours-tdw/http.pdf http://tic01.tic.ec-lyon.fr/~muller/cours-tdw/httpbw.pdf

Plus en détail

Technologies du Web Master COMASIC Internet et HTTP

Technologies du Web Master COMASIC Internet et HTTP Technologies du Web Master COMASIC Internet et HTTP Antoine Amarilli 1 27 novembre 2014 1. Matériel de cours inspiré de notes par Pierre Senellart et Georges Gouriten. Merci à Pierre Senellart pour sa

Plus en détail

IUT Montpellier - Architecture (DU)

IUT Montpellier - Architecture (DU) IUT Montpellier - Architecture (DU) V. Poupet Cours n o 5 : Hypertext Transfer Protocol (HTTP) 1 Le protocole HTTP Lorsqu un utilisateur (client) veut obtenir une page web, il s adresse à un serveur web.

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

Application distribuée via HTTP Mise en œuvre minimale...

Application distribuée via HTTP Mise en œuvre minimale... Module RX : distrib/http Application distribuée via HTTP Mise en œuvre minimale... Problème de la distribution Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/

Plus en détail

1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3

1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3 Tutorial HTTP 1 Introduction...3 1.1 Propos du document...3 1.2 Introduction...3 1.3 De HTTP 1.0 à HTTP 1.1...3 2 URL HTTP...4 2.1 Format d une URL HTTP...4 2.2 Champs de l URL HTTP...4 2.3 Encodage d

Plus en détail

CSI 3540. Structures, techniques et normes du Web

CSI 3540. Structures, techniques et normes du Web CSI 3540 Structures, techniques et normes du Web Assises du Web (Partie 2) Objectifs: Maîtrise des concepts sur lesquels reposent les technologies du Web, incluant HTTP Bien comprendre les interactions

Plus en détail

Programmation du Web : Présentation du protocole HTTP

Programmation du Web : Présentation du protocole HTTP Programmation du Web : Présentation du protocole HTTP Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-14 Présentation générale Le

Plus en détail

Architecture des Applications Réticulaires

Architecture des Applications Réticulaires Architecture des Applications Réticulaires Id : cours3.bk 47 2008-03-01 16 :08 :37Z queinnec Christian Queinnec Université Paris 6 Troisième vague 2007-2008 UPMC NI584-2008fev c C.Queinnec 2/19 Plan 1

Plus en détail

Le World Wide Web. Introduction. Daniel Hagimont Laurent Broto. 13 mars 2011 IRIT/ENSEEIHT 1 / 34

Le World Wide Web. Introduction. Daniel Hagimont Laurent Broto. 13 mars 2011 IRIT/ENSEEIHT 1 / 34 Le World Wide Web Introduction Daniel Hagimont Laurent Broto IRIT/ENSEEIHT 13 mars 2011 1 / 34 Copyright (c) 2010 Daniel Hagimont & Laurent Broto. Permission is granted to copy, distribute and/or modify

Plus en détail

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type Typage des ressources Internet Types MIME (Multi-purpose Internet Mail Extension) RFC 2046. Composé par un type et un sous-type Les types principaux sont les suivants text image audio video message multipart

Plus en détail

Sécurité informatique Apprendre l attaque pour mieux se défendre

Sécurité informatique Apprendre l attaque pour mieux se défendre 384 Sécurité informatique Apprendre l attaque pour mieux se défendre Deux très importants types de données sont principalement utilisés sur le réseau Internet : les pages web et les e-mails. Dans ce chapitre

Plus en détail

Cours Web : Introduction

Cours Web : Introduction Cours Web : Introduction Catherine Letondal letondal@pasteur.fr Institut Pasteur Cours Web IEB 2005 p.1/?? Pourquoi un cours Web? le Web : c est stratégique en biologie c est un bon exemple de système

Plus en détail

Plan. Outils et tests. Architecture des Applications Réticulaires. Outils. Maven. Revision : 53. Maven Spring. Christian Queinnec

Plan. Outils et tests. Architecture des Applications Réticulaires. Outils. Maven. Revision : 53. Maven Spring. Christian Queinnec UPMC NI584-2008fev c C.Queinnec 3/25 UPMC NI584-2008fev c C.Queinnec 4/25 Plan Architecture des Applications Réticulaires Revision : 53 Christian Queinnec Université Paris 6 1 Maven Spring 2 Tests et tests

Plus en détail

INF8007 Langages de script

INF8007 Langages de script INF8007 Langages de script Sockets et serveur 1/18 INF8007 Langages de script Sockets et serveur Michel Desmarais Génie informatique et génie logiciel École Polytechnique de Montréal Hiver, 2014 INF8007

Plus en détail

Programmation des Sites Web

Programmation des Sites Web Programmation des Sites Web Deuxième Année ENSIMAG ENSIMAG 2000-2001 James L. Crowley Séance 5 21 mars 2001 Plan : CGI : Common Gateway Interface...2 Formulaires HTML...3 Exemple d'un Script pour un html

Plus en détail

Langages du Web. Que savez vous???

Langages du Web. Que savez vous??? Langages du Web Que savez vous??? Le WEB World Wide Web ouwww ouweb Toile d'araignée mondiale ou la toile Le Web utilise le réseau Internet pour relier des serveurs qui, grâce aux protocoles HTTP, HTTPS,

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 42 Chapitre 8 Développement d applications Web Amélie Lambert 2014-2015 2 / 42 Plan du cours Typologie des applications Web Architecture

Plus en détail

Outline. Traces sur le réseau. Client Serveur Architecture. Motivation. Emmanuel Benoist. Chargé de cours Université de Lausanne

Outline. Traces sur le réseau. Client Serveur Architecture. Motivation. Emmanuel Benoist. Chargé de cours Université de Lausanne Traces sur le réseau Emmanuel Benoist Chargé de cours Université de Lausanne Les entêtes de la s typiques 1 2 Client Serveur Architecture Sur le web, tout le monde est anonyme Du moins le croit on! Quantité

Plus en détail

La sécurisation d applications

La sécurisation d applications Université Toulouse 1 Sciences Sociales 10 mars 2008 Les firewalls ne suffisent plus Mais ont-ils jamais été suffisants? La protection à 100% n existe pas. De plus certains protocoles doivent absolument

Plus en détail

Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr

Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr Crédit : Joyent, Inc. Cécile HARDEBOLLE cecile.hardebolle@supelec.fr Prérequis PraDque de JavaScript Compréhension de l'architecture client- serveur web rôle du client vs. rôle du serveur protocole HTTP

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

Cours de Réseau et communication Unix n 8

Cours de Réseau et communication Unix n 8 Cours de Réseau et communication Unix n 8 Edouard THIEL Faculté des Sciences Université d Aix-Marseille (AMU) Septembre 2014 Les transparents de ce cours sont téléchargeables ici : http://pageperso.lif.univ-mrs.fr/~edouard.thiel/ens/rezo/

Plus en détail

Zoom sur Newtest LDAP intégration

Zoom sur Newtest LDAP intégration Zoom sur Newtest LDAP intégration L a suite Newtest doit s intégrer parfaitement dans votre Système d Information afin, notamment, d en faciliter l usage. La version NEP 2.1.1 ne déroge pas à cette règle

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

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing Stéphane Bortzmeyer Première rédaction de cet article le 14 juin 2014 Date de publication du

Plus en détail

Formation dev web de base

Formation dev web de base Formation dev web de base Le Web n est pas internet HTTP Hypertext Transfer Protocol Le client envoie une requête au serveur. Le serveur répond avec un code status et un contenu Le navigateur reçoit la

Plus en détail

Initiation PHP-MySQL : HTML, HTTP, URL, PHP Vocabulaire, principes et premiers pas

Initiation PHP-MySQL : HTML, HTTP, URL, PHP Vocabulaire, principes et premiers pas Initiation PHP-MySQL : HTML, HTTP, URL, PHP Vocabulaire, principes et premiers pas Olivier BOEBION 12/02/2004 1 Le point de départ 1.1 Et la lumière fut... A la fin des années 1980, Tim Berners-Lee travaillant

Plus en détail

Introduction à HTTP. Chapitre 3 3.1 HTTP 0.9

Introduction à HTTP. Chapitre 3 3.1 HTTP 0.9 Chapitre 3 Introduction à HTTP L HyperText Transfer Protocol, plus connu sous l abréviation HTTP (littéralement protocole de transfert hypertexte ) est un protocole de communication client-serveur développé

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

DESS TEXTE. Outils informatiques 5. HTML et le protocole HTTP p.1

DESS TEXTE. Outils informatiques 5. HTML et le protocole HTTP p.1 Outils informatiques 5. HTML et le protocole HTTP DESS TEXTE Outils informatiques 5. HTML et le protocole HTTP p.1 Introduction But du cours : récupérer automatiquement des données accessibles sur le web

Plus en détail

Internet. Web Sécurité Optimisation

Internet. Web Sécurité Optimisation Internet Web Sécurité Optimisation Objectif Survol Web / Optimisation / Sécurité Sommaire 1. Fondamentaux 2. Hotes virtuels 3. Règles de réécriture 4. Optimisations 1. Fondamentaux - DNS fsf.com => 208.73.210.29

Plus en détail

Guide d implémentation : M2M Tiers Déclarants

Guide d implémentation : M2M Tiers Déclarants Référence Guide d implémentation de l API M2M MSA Guide d implémentation : M2M Tiers Déclarants A G O R A Historique du document : Version Date Auteur Commentaires / Modifications 1.0 27/03/2014 L. BREIL

Plus en détail

World-Wide Web et les formulaires électroniques, les images réactives

World-Wide Web et les formulaires électroniques, les images réactives World-Wide Web et les formulaires électroniques, les images réactives francois.dagorn@univ-rennes1.fr octobre 1995 1 Introduction Les clients WWW sont en général utilisés pour accéder à des documents diffusés

Plus en détail

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

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009 HTTP Technologies du Web Programmation Web côté serveur Pierre Senellart (pierre.senellart@telecom-paristech.fr) Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009 P. Senellart (TELECOM

Plus en détail

TD : Protocoles applicatifs DNS, SMTP, HTTP

TD : Protocoles applicatifs DNS, SMTP, HTTP TD : Protocoles applicatifs DNS, SMTP, HTTP 1 Domain Name System (DNS) 1.1 Structure On considère l arbre de noms ci-dessous. Les noms entre parenthèses sont les serveurs DNS ayant autorité sur ces parties

Plus en détail

Service Web. Cours de Réseaux. Tuyêt Trâm DANG NGOC 2012-2013. Université de Cergy-Pontoise. Tuyêt Trâm DANG NGOC Service Web 1 / 12

Service Web. Cours de Réseaux. Tuyêt Trâm DANG NGOC 2012-2013. Université de Cergy-Pontoise. <dntt@u-cergy.fr> Tuyêt Trâm DANG NGOC Service Web 1 / 12 Service Web Cours de Réseaux Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012-2013 Tuyêt Trâm DANG NGOC Service Web 1 / 12 Plan 1 Le Web 2 HTTP 3 FTP 4 URL Tuyêt Trâm DANG NGOC

Plus en détail

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

Failles XSS : Principes, Catégories Démonstrations, Contre mesures HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,

Plus en détail

Internet. Web Sécurité Optimisation

Internet. Web Sécurité Optimisation Internet Web Sécurité Optimisation Objectif Survol Web / Optimisation / Sécurité Sommaire 1. Fondamentaux 2. Hotes virtuels 3. Règles de réécriture 4. Optimisations 1. Fondamentaux - DNS fsf.com => 208.73.210.29

Plus en détail

Protocoles Applicatifs

Protocoles Applicatifs Programmation Réseau Protocoles Applicatifs Jean-Baptiste.Yunes@liafa.jussieu.fr UFR Informatique 2011-2012 Protocoles Protocoles applicatifs on appelle protocole applicatif ou protocole d application

Plus en détail

Programmation du Web : Présentation du Web dynamique

Programmation du Web : Présentation du Web dynamique Programmation du Web : Présentation du Web dynamique Jean-Baptiste Vioix (Jean-Baptiste.Vioix@u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-8 Présentation Nécessité du web dynamique

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

HTTP-Serveur. Références

HTTP-Serveur. Références HTTP-Serveur Jean-François Berdjugin IUT1, département SRC, L Isle d Abeau Références http://www.apache.org/ http://www.lealinux.org/cached/index/reseau-webapache_conf.html RFC 2616 1 Plan HTTP 1.1 Les

Plus en détail

Une application bidon avec REST, SQL et Unicode, juste comme exemple

Une application bidon avec REST, SQL et Unicode, juste comme exemple Une application bidon avec REST, SQL et Unicode, juste comme exemple Stéphane Bortzmeyer Première rédaction de cet article le 25 juillet 2007. Dernière mise à jour le 31

Plus en détail

T. HSU Sécurité des programmes PHP

T. HSU Sécurité des programmes PHP Sécurité des programmes PHP T. HSU IUT de LENS, Département informatique November 13, 2012 Part I Introduction à PHP Fonctionnement 1 : Requète PHP 2 : Aller chercher la page MySQL Page PHP Moteur PHP

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

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

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons <ads@intrinsec.com> Jérémie Jourdin <jjn@intrinsec.com> Arnaud Desmons Jérémie Jourdin Présentation Motivations Historique Démonstration Présentation fonctionnelle Présentation technique L'interface d'administration Roadmap

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

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

WebSSO, synchronisation et contrôle des accès via LDAP 31 mars, 1er et 2 avril 2009 WebSSO, synchronisation et contrôle des accès via LDAP Clément Oudot Thomas Chemineau Sommaire général Synchronisation d'identités WebSSO et contrôle des accès Démonstration

Plus en détail

Compte rendu de PHP MySQL : création d un formulaire de base de données

Compte rendu de PHP MySQL : création d un formulaire de base de données REVILLION Joris Décembre 2009 3EI Compte rendu de PHP MySQL : création d un formulaire de base de données Objectifs : Le principal objectif de ce cours est de découvrir et de nous familiariser avec le

Plus en détail

NFA016 : Les protocoles. Notion de protocole. Modèle OSI

NFA016 : Les protocoles. Notion de protocole. Modèle OSI NFA016 : Les protocoles O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Notion de protocole Un réseau: ensemble de machines reliées entre elles. Communiquer: Parler "la même langue". Protocole

Plus en détail

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

CGI et SSI. La programmation CGI. Sources. Objectifs. Qu'est ce qu'un programme CGI? CGI Sources CGI et SSI Supports de cours de Olivier Glück (Lyon 1) Livres cités en bibliographie Le web Sylvain Brandel Sylvain.brandel@liris.univ-lyon1.fr http://bat710.univ-lyon1.fr/~sbrandel M1 Informatique

Plus en détail

PHP/MYSQL. Web Dynamique

PHP/MYSQL. Web Dynamique PHP/MYSQL Web Dynamique ENSG Juin 2008 Qui suis-je? Guillaume Gautreau Responsable projets Systèmes d information à l ENPC guillaume@ghusse.com http://www.ghusse.com Ces 6 jours de formation Jour 1 : présentations,

Plus en détail

Master 1 Informatique. Emmanuel Godard. 22 novembre 2005

Master 1 Informatique. Emmanuel Godard. 22 novembre 2005 Réseaux Master 1 Informatique Emmanuel Godard Université de Provence 22 novembre 2005 Emmanuel Godard (Université de Provence) Réseaux 22 novembre 2005 1 / 1 Emmanuel Godard (Université de Provence) Réseaux

Plus en détail

Méta-connaissances pour générer des programmes sur le Web

Méta-connaissances pour générer des programmes sur le Web Méta-connaissances pour générer des programmes sur le Web Basile STARYNKEVITCH http://starynkevitch.net/basile/ basile@starynkevitch.net (à titre privé, sans rapport avec mon employeur CEA-LIST) Séminaire

Plus en détail

Architecture client-serveur

Architecture client-serveur Architecture client-serveur Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 Objectifs du cours Rappels sur les ordinateurs réseau et Internet. Communication entre programmes et entre machines.

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

Sécuriser les applications web de l entreprise

Sécuriser les applications web de l entreprise LABORATOIRE SECURITE Sécuriser les applications web de l entreprise Mise en place de ModSecurity pour Apache Julien SIMON - 61131 Sommaire Présentation de la situation actuelle...3 Qu est ce qu un WAF?...5

Plus en détail

Applications Réparties. Département Sciences Informatiques SI 4 ème année

Applications Réparties. Département Sciences Informatiques SI 4 ème année Applications Réparties Département Sciences Informatiques SI 4 ème année 1 Applications Réparties? Ensemble de processus (objets, agents, acteurs) qui: Communiquent entre eux via un réseau Evoluent de

Plus en détail

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition)

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition) Introduction 1. Objectif de l'ouvrage 13 2. Fonctionnement d un site web 13 Installation 1. Introduction 17 2. Installation d'easyphp 13.1 18 Les bases du langage PHP 1. Les balises 23 1.1 Syntaxe de base

Plus en détail

Technologies Web. Farah Benamara Zitoune Maître de conférences IRIT-UPS benamara@irit.fr

Technologies Web. Farah Benamara Zitoune Maître de conférences IRIT-UPS benamara@irit.fr Technologies Web Farah Benamara Zitoune Maître de conférences IRIT-UPS benamara@irit.fr Plan du cours Cours 1 : Introduction HTML/CSS Cours 2 : Introduction programmation web + javascirpt Cours 3 : Introduction

Plus en détail

Système UNIX et Langages de scripts

Système UNIX et Langages de scripts Système UNIX et Langages de scripts Projet Les deux sujets sont à faire, en binôme! 1 Bash : Gestion d une bibliothèque numérique L objectif est de gérer une bibliothèque numérique (un ensemble de livres

Plus en détail

Architecture client-serveur

Architecture client-serveur Architecture client-serveur Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 2007-2008 Master SIB M1 UE 3 / Bloc 4 Cours 3 Objectifs du cours Rappels sur les ordinateurs réseau et Internet.

Plus en détail

Sécurité d un site php

Sécurité d un site php Sensibilisation IUT de Fontainebleau 8 juin 2015 1 2 1 2 Enjeux L application manipulent-ils des données fiables? L application interagit-elle avec le bon interlocuteur? Le secret des données échangées

Plus en détail

Accéder à des services web RestFul

Accéder à des services web RestFul Accéder à des services web RestFul c 'est quoi un «service web» des fonctionnalités d'une application exposées et accessibles à distance au travers d'une api construite au dessus de http (i.e. Avec des

Plus en détail

Architectures. 28/12/02 CPI 1A : WEB Présentation 1

Architectures. 28/12/02 CPI 1A : WEB Présentation 1 Architectures 28/12/02 CPI 1A : WEB Présentation 1 Modèle Maître Esclave Utilisation du poste client, un simple terminal passif Le serveur gère l'affichage sur le terminal en fonction. Terminaux spécifiques

Plus en détail

Le client/serveur dans le cas du Web

Le client/serveur dans le cas du Web Le client/serveur dans le cas du Web Olivier Flauzac & Cyril Rabat olivier.flauzac@univ-reims.fr cyril.rabat@univ-reims.fr Licence 3 Info - Info0503 - Introduction à la programmation client/serveur 2015-2016

Plus en détail

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

Vulnérabilités et sécurisation des applications Web Rencontres SPIRAL 25/02/03 Vulnérabilités et sécurisation des applications Web Pourquoi les firewalls sont impuissants face à certaines attaques patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com

Plus en détail

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

JSP/Servlets Enchaînement de pages. B. Mermet 2009

JSP/Servlets Enchaînement de pages. B. Mermet 2009 JSP/Servlets Enchaînement de pages B. Mermet 2009 Spécification d'une adresse cible Adresse absolue protocole://adresse Adresse relative à l'application /adressepage Adresse relative à la page adressepage

Plus en détail

DAR - Cours 2 Communication

DAR - Cours 2 Communication DAR - Cours 2 Communication Romain Demangeon APR, LIP6, UPMC 21/09/2015 Précisions Front-end / Back-End Vision Serveur: Partie client Partie serveur(front-end, BDD, Back-end). Vision Application: Front-end

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

Documents web dynamiques. 20 novembre 2007 Architecture Multi-Niveaux 54

Documents web dynamiques. 20 novembre 2007 Architecture Multi-Niveaux 54 Documents web dynamiques 20 novembre 2007 Architecture Multi-Niveaux 54 Documents web dynamiques Contenu Statique Le client envoie une requête avec un nom de fichier Le serveur répond en lui retournant

Plus en détail

Internet, comment ça marche?

Internet, comment ça marche? Internet, comment ça marche? Émeric Tourniaire 14 octobre 2015 Table of contents Internet Protocoles Quand ça ne marche pas Conclusion Internet, c est quoi? Des ordinateurs (mais pas que) Des Systèmes

Plus en détail

, en même temps que d autres codes de statuts, non-normalisés mais très utilisés sur le web.

, en même temps que d autres codes de statuts, non-normalisés mais très utilisés sur le web. Liste des codes HTTP Un article de Wikipédia, l'encyclopédie libre. Aller à : Navigation, rechercher Ceci est une liste des codes du protocole HTTP ainsi que les messages généralement associés, dans l

Plus en détail

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

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé) Introduction PHP = Personal Home Pages ou PHP Hypertext Preprocessor Langage de script interprété (non compilé) Plan Avantages Fonctionnement interne Bases du langage Formulaires Envoi d un email Avantages

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

Formation PHP débutant

Formation PHP débutant Formation PHP débutant Table des matières 1 Le principe de PHP 3 1.1 Langage côté serveur.................................. 3 1.2 Pour travailler..................................... 3 1.3 Langage de pré-processing...............................

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

Architecture client/serveur

Architecture client/serveur Architecture client/serveur Table des matières 1. Principe du client/serveur...2 2. Communication client/serveur...3 2.1. Avantages...3 2.2. Inconvénients...3 3. HTTP (HyperText Transfer Protocol)...3

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 2 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

La distribution de contenu dans l Internet

La distribution de contenu dans l Internet La distribution de contenu dans l Internet 1 Les technologies du Web Christophe Deleuze Christophe.Deleuze@free.fr ENST Paris janvier 2004 La distribution de contenu dans l Internet p.1/52 La distribution

Plus en détail

Comprendre et programmer le protocole HTTP

Comprendre et programmer le protocole HTTP Comprendre et programmer le protocole HTTP Ces quatre lettres vous sont forcément familières, c est peut être la suite de lettres la plus utilisée au monde. Chaque jour en tapant http:// dans votre navigateur

Plus en détail

Plan du travail. 2014/2015 Cours TIC - 1ère année MI 86

Plan du travail. 2014/2015 Cours TIC - 1ère année MI 86 Plan du travail Chapitre 1: Internet et le Web Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015 Cours TIC - 1ère année MI

Plus en détail

Sécurité web client. Magali Contensin. ANF Dev Web ASR Carry-Le-Rouet. 25 octobre 2012

Sécurité web client. Magali Contensin. ANF Dev Web ASR Carry-Le-Rouet. 25 octobre 2012 web client Magali Contensin 25 octobre 2012 ANF Dev Web ASR Carry-Le-Rouet Plan Visibilité du code La vérification des données côté client est insuffisante XSS Usurpation de contenu AJAX Visibilité du

Plus en détail

TD3 : PHP «avancé» V2.4.0

TD3 : PHP «avancé» V2.4.0 TD3 : PHP «avancé» V2.4.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé. Document

Plus en détail

Telecommunication Services Engineering (TSE) Lab

Telecommunication Services Engineering (TSE) Lab Chapitre 3: La toile Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ Application Couche Application Transport Réseau Liaison de données Support

Plus en détail

Apache. Un serveur web. Année 2007-08. Licence Pro. SIL. 1/36 Apache Année 2007-08

Apache. Un serveur web. Année 2007-08. Licence Pro. SIL. 1/36 Apache Année 2007-08 Apache Un serveur web Licence Pro. SIL Année 2007-08 1/36 Apache Année 2007-08 Introduction Apache est un serveur Web. Fondamentalement il délivre des fichiers par le protocole http à des clients. Les

Plus en détail