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

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

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

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 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

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

(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons <ads@intrinsec.com> Jérémie Jourdin <jjn@intrinsec.com>

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

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

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

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

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

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST Amosse EDOUARD, Doctorant Organisation Cours Magistral 24/11/2014 26/11/2014 01/12/2014 Travaux Dirigés 26/11/2014 28/11/2014 01/11/2014 08/11/2014 Evaluation

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

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

Sécurité des applications Web

Sécurité des applications Web Travail de diplôme Auteur : Professeurs : Expert : Sylvain Maret Stefano Ventura Gérald Litzistorf Yverdon, le 18 décembre 2003 Table des matières 1. Résumé... Page 5 1.1 Problématique... Page 5 1.2 Mandat...

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

«Cachez-moi cette page!»

«Cachez-moi cette page!» «Cachez-moi cette page!» Atelier Pratique 1h30 Hugo Hamon (@hhamon) http://hugohamon.com Qui suis-je? Au menu de cet atelier 1. Introduction 2. Avantages 3. Expiration (Expires & Cache-Control) 4. Validation

Plus en détail

Protection des protocoles www.ofppt.info

Protection des protocoles www.ofppt.info ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2

Plus en détail

SERVEUR HTTP Administration d apache

SERVEUR HTTP Administration d apache 1 SERVEUR HTTP Administration d apache PLAN Introduction: Présentation HTTP; Installation et configuration d apache; VirtualHosts; Aliasing; Limitation d accès. 2 PROTOCOLE HTTP PRÉSENTATION HTTP : HyperText

Plus en détail

Dans l'épisode précédent

Dans l'épisode précédent Dans l'épisode précédent 2 Le réseau SERVEURS POSTE CLIENT POSTE CLIENT wifi SERVEURS POSTE CLIENT switch Borne Wifi SERVEURS routeur POSTE CLIENT? SERVEURS SERVEURS SERVEURS POSTE CLIENT SERVEURS 3 Les

Plus en détail

Introduction à l'internet et ces Protocoles

Introduction à l'internet et ces Protocoles Techniques de Programmation pour Internet Année Spéciale Informatique ENSIMAG 2000-2001 James L. Crowley Séance 1 31 janvier 2001 Plan : Introduction à l'internet et ces Protocoles Objectifs du cours PSW...2

Plus en détail

CREATION d UN SITE WEB (INTRODUCTION)

CREATION d UN SITE WEB (INTRODUCTION) CREATION d UN SITE WEB (INTRODUCTION) Environnement : World Wide Web : ordinateurs interconnectés pour l échange d informations ( de données) Langages : HTML (HyperText Markup Language) : langages pour

Plus en détail

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

Vulnérabilités et solutions de sécurisation des applications Web Vulnérabilités et solutions de sécurisation des applications Web Patrick CHAMBET EdelWeb ON-X Consulting patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com Eric Larcher RSSI Accor

Plus en détail

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT FileMaker Server 11 Publication Web personnalisée avec XML et XSLT 2007-2010 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker est une

Plus en détail

Développement des Systèmes d Information

Développement des Systèmes d Information Développement des Systèmes d Information Axe ISI Camille Persson Institut Fayol / LSTI / ISCOD École Nationale Supérieure des Mines de Saint-Etienne 158 cours Fauriel, 42000 Saint-Etienne persson@emse.fr

Plus en détail

Sécurité des applications web. Daniel Boteanu

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

Plus en détail

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

Le serveur HTTPd WASD. Jean-François Piéronne Le serveur HTTPd WASD Jean-François Piéronne Sommaire Caractéristiques Architecture générale Performances Intégration dans OpenVMS Caractéristiques Implémentation complète HTTP/1.0 Méthodes "GET", "HEAD",

Plus en détail

Développement Web. Les protocoles

Développement Web. Les protocoles Développement Web NFA016 2007-2008 Les protocoles CNAM le 28 octobre 2007 O. Pons S. Rosmorduc M. Simonot 1 / 27 Notion de protocole Un réseau : ensemble de machines reliées entre elles. Communiquer :

Plus en détail

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

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal SSO open source avec CAS Introduction Pourquoi le Single Sign-On? Principes du SSO sur le

Plus en détail

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

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

Plus en détail

Serveurs et environnements de développement. Serveur Web

Serveurs et environnements de développement. Serveur Web Serveurs et environnements de développement Serveurs et environnements 1 Serveur Web Serveur web: Système sur lequel s'exécute un serveur HTTP (HTTPd) Logiciel HTTP lui-même (HTTPd) Sert des données Hypermédia

Plus en détail

SYSTÈMES D INFORMATIONS

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

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

API ONE-TIME PASSWORD

API ONE-TIME PASSWORD PLATEFORME SAAS D'ENVOI DE SMS Guide du débutant API ONE-TIME PASSWORD UTILISER LA PLATEFORME SMSMODE DOCUMENTATION TECHNIQUE QU'EST-CE QUE L'API OTP? Notre solution technique pour l OTP (One Time Password)

Plus en détail

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol IUT IUT d'orsay réseaux réseaux Protocoles d'applications Le courrier électronique Divers éléments POP3 IMAP protocole de transport format de l entête, de ses champs, des adresses électroniques standard

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Plus en détail

Langage W4. Note technique W4 Engine

Langage W4. Note technique W4 Engine Note technique W4 Engine Cette note technique décrit la conception d écrans HTML dynamiques prenant en charge un processus de workflow ; elle explique comment utiliser les mots clés et les API W4 dans

Plus en détail

Bases de données et Interfaçage Web

Bases de données et Interfaçage Web Bases de données et Interfaçage Web Université Virtuelle de Tunis 2006 Le Web et les Bases de Données Connecter une base de données au World Wide Web, c est mettre en place une passerelle entre un serveur

Plus en détail

Attaques applicatives

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

Plus en détail

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

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi Un exemple d'authentification sécurisée utilisant les outils du Web : CAS 111 L authentification CAS : «Central Authentication Service» CAS ou le service central d authentification Le système CAS, développé

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données Activité sur Meteor Annexe 1 : notion de client-serveur et notion de base de données Notion de client-serveur Que se passe-t-il lorsque vous tapez dans la barre d'adresse de votre navigateur «http://www.google.fr»?

Plus en détail

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

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

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test? Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:centrecom@e-i.com

Plus en détail

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

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web NFA016 : Introduction O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Pour naviguer sur le Web, il faut : 1. Une connexion au réseau Réseau Connexion physique (câbles,sans fils, ) à des

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Les services usuels de l Internet

Les services usuels de l Internet Les services usuels de l Internet Services principaux (applications) disponibles sur l Internet Courrier électronique (mail) - protocole SMTP (Simple Mail Transfer Protocol) inclut maintenant tous types

Plus en détail

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

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

Plus en détail

Module http MMS AllMySMS.com Manuel d intégration

Module http MMS AllMySMS.com Manuel d intégration Module http MMS AllMySMS.com Manuel d intégration Objectif du document... 3 1 Envoi de MMS par requête http... 4 1.1 Format de la requête utilisée... 4 1.2 Arborescence et explication des balises du flux

Plus en détail

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement SIP Nguyen Thi Mai Trang LIP6/PHARE Thi-Mai-Trang.Nguyen@lip6.fr UPMC - M2 Réseaux - UE PTEL 1 Plan Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement UPMC -

Plus en détail

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4

Avant-propos 1. Avant-propos...3 2. Organisation du guide...3 3. À qui s'adresse ce guide?...4 Les exemples cités tout au long de cet ouvrage sont téléchargeables à l'adresse suivante : http://www.editions-eni.fr. Saisissez la référence ENI de l'ouvrage EP5EJAV dans la zone de recherche et validez.

Plus en détail

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

En Perl, les choses sont un peu différentes. Le cgi Perl ne peut être qu'un programme qui génère des sorties. Les CGI en Perl. En Perl, les choses sont un peu différentes. Le cgi Perl ne peut être qu'un programme qui génère des sorties. 1 Une fois de plus. #!/usr/bin/perl print "Content-type: text/html\n\n"; print

Plus en détail

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

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

Plus en détail

Tests de montée en charge avec Tsung

Tests de montée en charge avec Tsung Tests de montée en charge avec Rodolphe Quiédeville 10e Journées Du Logiciel Libre Lyon 17 et 18 octobre 2008 Rodolphe Quiédeville (Bearstech) Tests de montée en charge avec 17 et 18 octobre 2008 1 / 27

Plus en détail

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

Couche applica,on. h.p- web Cgi javascript Couche applica,on h.p- web Cgi javascript Couche application Présentation générale: v Modèle des services de la couche transport v Modèle clientserveur v Modèle pair-à-pair Socket: UDP TCP Protocoles v

Plus en détail

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

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état. Failles des applications Web Ce document est extrait du travail de diplôme de M. DIZON dans l état. 1 Introduction...1 2 Contournement de validation javascript...2 2.1 Introduction...2 2.2 Principe de

Plus en détail

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

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

Plus en détail

Réseaux. 1 Généralités. E. Jeandel

Réseaux. 1 Généralités. E. Jeandel 1 Généralités Réseaux Couche Application E. Jeandel Couche application Dernière couche du modèle OSI et TCP/IP Échange de messages entre processus Protocole Un protocole de niveau application doit spécifier

Plus en détail

FileMaker Server 12. publication Web personnalisée avec XML

FileMaker Server 12. publication Web personnalisée avec XML FileMaker Server 12 publication Web personnalisée avec XML 2007-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont

Plus en détail

Introduction à Sign&go Guide d architecture

Introduction à Sign&go Guide d architecture Introduction à Sign&go Guide d architecture Contact ILEX 51, boulevard Voltaire 92600 Asnières-sur-Seine Tél. : (33) 1 46 88 03 40 Fax : (33) 1 46 88 03 41 Mél. : support@ilex.fr Site Web : www.ilex.fr

Plus en détail

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

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

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

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

Plus en détail

Index. Symboles. Nombres

Index. Symboles. Nombres Index Symboles, (virgule) conception des URI et 243 informations de contexte 126 129 / (barre oblique) style Django et 377 utiliser XPath et 24 ; (point-virgule), informations de contexte 126 129 [ ] (crochets)

Plus en détail

Technologie des Serveurs Internet. Langage Perl

Technologie des Serveurs Internet. Langage Perl Technologie des Serveurs Internet Jean Denis Girard :: jd.girard@sysnux.pf SysNux BP 110076 98709 Mahina Tahiti Polynésie française http://www.sysnux.pf/ Année 2015 Plan Protocole HTTP Serveur Web (Apache)

Plus en détail

Guide d implémentation. Réussir l intégration de Systempay

Guide d implémentation. Réussir l intégration de Systempay Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.4b Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa

Plus en détail

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site

Plus en détail

Sessions en ligne - QuestionPoint

Sessions en ligne - QuestionPoint Sessions en ligne - QuestionPoint Configuration du navigateur Internet Explorer Dernière mise à jour : 12 mai 2012 Vous trouverez dans ce guide les procédures pour configurer votre navigateur Internet

Plus en détail

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall Internet DNS World Wide Web Mécanismes de base Exécution d'applications sur le web Divers Proxy, fire-wall 1 Les services usuels de l Internet Services principaux (applications) disponibles sur l Internet

Plus en détail

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

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

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

Plus en détail

Création de formulaires interactifs

Création de formulaires interactifs SESSION 16 Création de formulaires interactifs Programme de la session Lancer un sondage en utilisant divers éléments d'entrée de formulaire Traiter les entrées utilisateur Activer un script à partir d'un

Plus en détail

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

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE Table des matières Principes de FTPS... 2 Généralités... 2 FTPS en mode implicite... 2 FTPS en mode explicite... 3 Certificats SSL / TLS... 3 Atelier de tests

Plus en détail

Joomla! Création et administration d'un site web - Version numérique

Joomla! Création et administration d'un site web - Version numérique Avant-propos 1. Objectifs du livre 15 1.1 Orientation 15 1.2 À qui s adresse ce livre? 16 2. Contenu de l ouvrage 17 3. Conclusion 18 Introduction 1. Un peu d histoire pour commencer... 19 1.1 Du web statique

Plus en détail

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP IFT1147 Programmation Serveur Web avec PHP Un bref survol du langage HTML HMTL HTML: Hypertext Markup Language HTML est essentiellement un langage de description de structure de document (par exemple titre,

Plus en détail

Un serveur web léger et ouvert

Un serveur web léger et ouvert Un serveur web léger et ouvert A propos de moi Nenad Rakocevic Programmeur depuis 25 ans: C/C++, *Basic, ASM, REBOL, Javascript, Co-fondateur de Softinnov, entreprise IT à Paris Auteur de plusieurs librairies

Plus en détail

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France Développement d applications Internet et réseaux avec LabVIEW Alexandre STANURSKI National Instruments France Quelles sont les possibilités? Publication de données Génération de rapports et de documents

Plus en détail

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003. Ce document est libre de droit, merci simplement de respecter son auteur. Toutes remarques ou commentaires seront les bienvenues. ATTENTION : La mise à jour par script entre GLPI et Active Directory ne

Plus en détail

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall

RTE Technologies. RTE Geoloc. Configuration avec Proxy ou Firewall RTE Technologies RTE Geoloc Configuration avec Proxy ou Firewall 2 Septembre 2010 Table des matières Introduction... 3 Présentation de RTE Geoloc... 3 Configuration des paramètres de sécurité... 3 Configuration

Plus en détail