AWS – Applications web et sécurité
Informations pratiques
Chargé de cours et de TD : Luca De Feo http://defeo.lu/.
Cours : Mercredi 13h30 - 15h, amphi B,
TDs, Groupe 1 : Jeudi 9h45 - 13h, salle ALSACE,
TDs, Groupe 2 : Mercredi 15h15 - 18h30, salle ALSACE,
TDs, Groupe 3 : Lundi 13h30 - 16h45, salle ALSACE.
Plan (tout)
Semaine 1 (02/02/2015)
- Amphi :
- Le WWW
- Leçons :
- HTTP
- HTML
- Formulaires HTML
- CSS
Semaine 2 (09/02/2015)
- TD :
- HTML, CSS et formulaires
- Amphi :
- Autour de CSS
- Leçons :
- JavaScript
- Le DOM
- Approfondissements :
- Box model et positionnement absolu
- Flexbox
Semaine 3 (16/02/2015)
- TD :
- Un simple jeu en JavaScript
- Amphi :
- Autour de Flexbox et JavaScript
- Leçons :
- PHP
- Frameworks Web
- Approfondissements :
- JavaScript Avancé
- Presque comme JQuery
Semaine 4 (02/03/2015)
- TD :
- Un simple jeu en JavaScript
- Le réflecteur (version pour Silex)
- Le réflecteur (version pour Node.js)
- Amphi :
- Frameworks : Silex, Node
- Leçons :
- Langages de templates
- Maintien d'état
- Approfondissements :
- PHP orienté aux objets
Semaine 5 (09/03/2015)
- TD :
- Le réflecteur (version pour Silex)
- Le réflecteur (version pour Node.js)
- Templates, données, état (version pour Silex)
- Templates, données, état (version pour Node.js)
- Amphi :
- Langages de template, cookies, storage API
- Leçons :
- Sessions
- Stockage Persistant
- Approfondissements :
- Templates sans logique
Semaine 6 (16/03/2015)
- TD :
- Le réflecteur (version pour Silex)
- Le réflecteur (version pour Node.js)
- Templates, données, état (version pour Silex)
- Templates, données, état (version pour Node.js)
- Amphi :
- Sessions, comptes utilisateurs, sécurité
- Leçons :
- Applications asynchrones
- JSON
- Approfondissements :
- Vol de session
Semaine 7 (23/03/2015)
- TD :
- Templates, données, état (version pour Silex)
- Templates, données, état (version pour Node.js)
- Comptes utilisateur et AJAX (version pour Silex)
- Comptes utilisateur, AJAX, Server push (version pour Node.js)
- Amphi :
- JavaScript avancé
- Leçons :
- Injections SQL
- XSS
- Approfondissements :
- Communication bidirectionnelle
- JavaScript asynchrone
Semaine 8 (30/03/2015)
- TD :
- Comptes utilisateur et AJAX (version pour Silex)
- Comptes utilisateur, AJAX, Server push (version pour Node.js)
- Amphi :
- Sécurité web
- Approfondissements :
- AJAX cross-domain
- Le ver XSS Samy
- Content Security Policy
- CSRF
Semaine 9 (13/04/2015)
- TD :
- Propositions de projet
- Amphi (séminaire) :
- Interfaces utilisateur rapides avec React.js (Intervention par CANAL+)
Modalités d’évaluation
- Contrôle continu
- Propositions de projet
- Planning des soutenances (salle G205)
- Examen (13/05/2015)
- Sujet
- Examen deuxième session (17/06/2015)
- Sujet
Archives
Éditions précédentes de ce cours :
Sujets d’examen :
- Premier checkpoint 2013-2014 (contrôle continu)
- Deuxième checkpoint 2013-2014 (contrôle continu)
- Examen 2013-2014 (Pré-sujet) (Sujet)
- Examen deuxième session 2013-2014 (Sujet)
Liens
- Mes CodePens, qui démontrent comment exécuter les passages délicats de certains TDs.
- Deux cours de Polytechnique par mon collègue et ami Dominique Rossin:
- Les W3 Schools http://www.w3schools.com/ et leur tutoriel HTML5 http://www.w3schools.com/html/html5_intro.asp.
- Les validateurs HTML http://validator.w3.org/ et CSS http://jigsaw.w3.org/css-validator/.
- Le consortium du WWW http://www.w3.org/.
- Les pages des frameworks PHP Silex http://silex.sensiolabs.org/ et Symfony http://symfony.com/.
- Les livres de Sensiolabs sur Symfony : http://books.sensiolabs.com/.
- La documentation du moteur de templating Twig : http://twig.sensiolabs.org/.
- Le site de l’Association francophone des utilisateurs de Symfony http://afsy.fr/.
- Le site de Node.js http://www.nodejs.org/, les guides http://docs.nodejitsu.com/ et la API reference http://www.nodejs.org/api.
- Le framework Express pour Node.js.
- Le groupe français des utilisateurs de Node.js.
- La documentation de JQuery http://docs.jquery.com/.
- Le projet OWASP http://www.owasp.org/ and leur application d’entraînement WebGoat.
Bibliographie
La bibliographie sur la programmation web est surabondante. La BU regorge de littérature redondante et obsolescente sur le sujet.
Pour approfondir vos connaissances sur HTML, JavaScript, etc., vous pouvez prendre essentiellement n’importe quel livre de la BU et le feuilleter. Évitez les livres trop vieux : contrôlez que la première édition (pas la dernière) n’ait pas été écrite plus de, disons, il y a cinq ans.
Suit une modeste sélection de liens et livres qui pourront vous être plus utiles que la moyenne.
HTML et CSS
- W3Schools. HTML5 Tutorial
- http://www.w3schools.com/html5/. Très bon tutoriel pour débutants. Exemples à essayer en ligne.
- W3Schools. CSS Tutorial
- http://www.w3schools.com/CSS/. Très bon tutoriel pour débutants. Exemples à essayer en ligne.
- W3Schools.
- http://www.w3schools.com. D’autres tutoriels sont aussi disponibles sur le site de W3Schools.
- L. van Lancker. HTML5 et CSS3
- Eni Éditions, 2011. ISBN: 978-2-7460-6242-9. Côte BU: 005.71htm VAN. Manuel d’introduction à HTML et CSS.
- B. Lawson and R. Sharp. Introduction à HTML5
- Pearson Education France, 2011. ISBN: 978-2-7440-2476-4. Côte BU: 005.71htm LAW. Destiné à ceux qui connaissent déjà HTML4.
JavaScript et AJAX
- Marijn Haverbeke. Eloquent JavaScript.
- No Starch Press 2014. Disponible en ligne en anglais
http://eloquentjavascript.net/. Bel ouvrage sur JavaScript et le DOM. La première édition est aussi disponible en français http://fr.eloquentjavascript.net/, et à la BU (côte 005.71jaS HAV).
- Mozilla Developer Network. JavaScript Guide.
- En anglais
https://developer.mozilla.org/en-US/docs/JavaScript/Guide et en français https://developer.mozilla.org/fr/docs/JavaScript/Guide. La première référence pour JavaScript.
- D. Crockford. JavaScript. Gardez le meilleur !.
- Pearson 2008. ISBN: 978-2-7440-2328-6. Côte BU : 005.13jaS CRO. Référence pour la syntaxe JavaScript.
- I. Wetzel and Z. Yi Jiang. JavaScript Garden.
- http://bonsaiden.github.com/JavaScript-Garden/. Un guide aux détails méconnus de JavaScript.
- C. Porteneuve. Bien développer pour le Web 2.0.
- 2ème édition. Eyrolles, 2009. ISBN: 978-2-212-12391-3. Côte BU: 005.71aja POR. Livre excellent pour l’apprentissage de JavaScript et AJAX, même s’il commence à prendre de l’age.
- N. C. Zakas. Professional JavaScript for Web Developers.
- 3rd edition. John Wiley & Sons, 2012. ISBN: 978-1-118-02669-4. Côte BU : 005.71jas ZAK. Livre très complet, centré sur le JavaScript côté client. Référence complète à JavaScript et au DOM, plus des extras sur les technologies récentes comme les Canvas et les Web Sockets.
- Mozilla foundation. Mozilla DOM resources.
- La référence sur la partie du DOM implantée dans Firefox
https://developer.mozilla.org/en/Gecko_DOM_Reference, et les ressources liées https://developer.mozilla.org/en/DOM.
- T. Stubbs and G. Allain. JQuery, Le guide complet
- Micro Application Éditions, 2011. ISBN: 978-2-300-036194. Côte BU: 005.71jsp ALL. Pour les programmeur déjà calé en Javascript.
PHP
- M. Achour et al. PHP Manual.
- http://www.php.net/manual. LE manuel de PHP.
- The Silex Book.
- http://silex.sensiolabs.org/documentation. La doc officielle de Silex (en anglais).
- F.-X. Bois. PHP5 et MySQL, Le guide complet
- Micro Application Éditions, 2010. ISBN 978-2-300-031946. Côte BU: 005.71php BOI. Manuel un peu plus avancé, il parle aussi de sécurité.
- J.-M. Culot. OEM Eyrolles, 2004. PHP5, Guide de prise en main
- ISBN 2-212-11487-7. Côte BU: 005.71php CUL. Manuel pour débutants
- A. Hendrix, B. Brinzarea, C. Darie. AJAX et PHP
- 2ème édition. Dunod, 2009. ISBN 978-2-10-055278-8. Côte BU: 005.71aja HEN. Un peu vieux, mais complet.
Node.js
- NodeJitsu.
- http://docs.nodejitsu.com/, tutoriels communautaires.
- Node school.
- http://nodeschool.io/, tutoriels interactifs.
- The Node.js API reference.
- http://www.nodejs.org/api, le manuel de référence.
- M. Kiessling. The Node beginner guide.
- en anglais http://www.nodebeginner.org/ et français
http://nodejs.developpez.com/tutoriels/javascript/node-js-livre-debutant/.
- F. Geisendörfer. Node.js Guide
- http://nodeguide.com/.
- Understandanding Connect and middleware
- http://project70.com/nodejs/understanding-connect-and-middleware/
- A. MacCaw. JavaScript Web Applications.
- O’Reilly 2011. ISBN: 978-1-449-30351-8. Côte BU: 005.71jsp MAC. Livre avancé sur JavaScript côté client et côté serveur. Aborde les patrons de développement (surtout MVC), la délégation de contrôle, et les frameworks JavaScript.
- M. Nebra. Des applications ultra-rapides avec Node.js
- Cours sur OpenClassrooms (anciennement Site du zéro).
Sécurité
- M. Zalewski. Browser Security Handbook.
- Google Inc 2009.
http://code.google.com/p/browsersec/wiki/Main. Excellente traité sur la sécurité des browsers, la Same Origin Policy et d’autres mécanismes expérimentaux.
- M. Zalewski. The Tangled Web.
- No Starch Press 2011. ISBN 978-1-593-27388-0. http://lcamtuf.coredump.cx/tangled/. Côte BU 005.8 ZAL. Traité complet sur la sécurité des applications web. Dérivé de l’ouvrage précédent, mais plus complet et plus à jour.
- OWASP. OWASP development guide
- https://www.owasp.org/index.php/Category:OWASP_Guide_Project. Guide complet à la sécurité des applications web.
- OWASP. OWASP development guide
- https://www.owasp.org/. Wiki de la fondation OWASP.
- D. Seguy and P. Gamache. Sécurité PHP5 et MySQL.
- 2ème édition. Eyrolles 2009. ISBN: 978-2-212-12554-2. Côte BU: 005.8 SEG. Livre d’introduction sur la sécurité web. Le chapitre 2 traîte XSS et CRSF. Les chapitres suivants sont plutôt orientés vers la pratique et donnent des conseils pour sécuriser les applications PHP+MySQL.
- R. Cannings, H.Dwivedi and Z. Lackey. Haking sur le Web 2.0
- Pearson Education France, 2008. ISBN: 978-2-7440-2306-4. Côte BU: 005.8 CAN. Mal écrit et pis traduit, il s’agit d’un pamphlet publicitaire pour la boîte des auteurs. Cependant, il est l’un des rares ouvrages sur la sécurité disponibles à la BU. Les parties I et II valent le détour.