{"id":18976613,"url":"https://github.com/paul-schuhm/securite-applications-web","last_synced_at":"2026-04-09T10:30:19.704Z","repository":{"id":243659295,"uuid":"813050103","full_name":"paul-schuhm/securite-applications-web","owner":"paul-schuhm","description":"Sources sur la sécurité des applications informatiques","archived":false,"fork":false,"pushed_at":"2024-06-18T07:45:51.000Z","size":317,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-01T09:26:33.604Z","etag":null,"topics":["pedagogie","security","teaching-materials","webapp"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paul-schuhm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-10T11:57:36.000Z","updated_at":"2024-06-28T06:19:29.000Z","dependencies_parsed_at":"2024-11-08T15:32:19.185Z","dependency_job_id":"ab18df5e-20ec-4be3-ba22-380751b6d452","html_url":"https://github.com/paul-schuhm/securite-applications-web","commit_stats":null,"previous_names":["paul-schuhm/securite-applications-web"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paul-schuhm%2Fsecurite-applications-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paul-schuhm%2Fsecurite-applications-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paul-schuhm%2Fsecurite-applications-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paul-schuhm%2Fsecurite-applications-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paul-schuhm","download_url":"https://codeload.github.com/paul-schuhm/securite-applications-web/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239978060,"owners_count":19728271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pedagogie","security","teaching-materials","webapp"],"created_at":"2024-11-08T15:25:34.530Z","updated_at":"2026-04-09T10:30:19.633Z","avatar_url":"https://github.com/paul-schuhm.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sécurité des applications web\n\nSources du module *Sécurité des applications web*. Ce module constitue une *introduction* à la sécurisation des sites et applications sur le web.\n\n- [Sécurité des applications web](#sécurité-des-applications-web)\n  - [Démos](#démos)\n  - [Checklists](#checklists)\n  - [Lexique](#lexique)\n  - [Bibliographie](#bibliographie)\n    - [Ouvrages](#ouvrages)\n    - [Références/Standards/Audits](#référencesstandardsaudits)\n      - [Sécurité](#sécurité)\n      - [RGPD](#rgpd)\n    - [Outils](#outils)\n    - [Articles / Sur le web](#articles--sur-le-web)\n    - [Conférences/Talks/Vidéos](#conférencestalksvidéos)\n    - [Légende bibliographie](#légende-bibliographie)\n\n\n## Démos\n\n- [Accéder à la démo live sur le traitement des données (validation, sanitize, escape)](./demo-live-validation-escape-sanitize/)\n- [Accéder à la démo commentée et documentée sur le traitement des données (validation, sanitize, escape)](./demo-commentee-validation-escape-sanitize/)\n- [Accéder à la démo Attaque Brute Force un système d'authentification](./demo-brute-force/), exemple de mini-projet illustrant un type d'attaque. S'en servir de base (plan) pour documenter une autre faille;\n- [Accéder à la démo Attaque Cross-site Request Forgery (CSRF)](./demo-csrf/)\n\n\n## Checklists\n\n[Accéder à une checklist de mesures de sécurité](./checklist.md)\n\n## Lexique\n\n[Accéder au lexique du cours](./lexique.md)\n\n\n## Bibliographie\n\nQuelques ressources pour approfondir le module *Sécurité des applications web*.\n\n### Ouvrages\n\n\u003cimg src=\"assets/hackers-handbook.jpg\" width=300 height=350\u003e\u003cimg src=\"assets/writing-secure-code.jpg\" width=300 height=350\u003e\n\n- [Essential PHP Security](https://www.oreilly.com/library/view/essential-php-security/059600656X/), de Shiflett, publié chez O'Reilly, 2005. LP++\n- [The Web Application Hackers Handbook](https://www.amazon.fr/Web-Application-Hackers-Handbook-Exploiting/dp/1118026470), de  Dafydd Stuttard et Marcus Pinto, publié chez John Wiley \u0026 Sons Inc, 2011. LE+\n- [Hacking: The Art of Exploitation, 2nd Edition](https://www.amazon.fr/dp/1593271441/), de Jon Erickson, publié chez No Starch Press, 2008. LE++\n- [Writing secure code, 2nd edition](https://www.amazon.com/Writing-Secure-Second-Developer-Practices/dp/0735617228), de  Michael Howard et David LeBlanc, publié chez Microsoft Press, 2003. Tout le livre est bon. Voir *partie II, chapitre 13* pour des problèmes spécifiques au web. LP++\n- [Threat Modeling: Designing for Security, 1st Edition ](https://www.amazon.fr/Threat-Modeling-Designing-Adam-Shostack/dp/1118809998), d'Adam Shostack, publié chez Wiley, 2014. LI++. Voir également l'introduction au *threat modeling* dans le chapitre 4 de *Writing Secure code* \n- [Web Security For Developers](https://www.amazon.fr/Web-Security-Developers-Malcolm-McDonald/dp/1593279949), de Malcolm Macdonald, publié chez No Starch Press, 2020. Introduction/Overview, couvre les menaces principales, pédagogique. Bien pour faire un tour d'horizon sans rentrer trop dans les détails et trouver des sujets à approfondir ensuite. LI\n- [Sécurité des applications web  : Stratégies offensives et défensives](https://www.editions-eni.fr/livre/securite-des-applications-web-strategies-offensives-et-defensives-9782409045127), de Malween Le Goffic, publié chez ENI Éditions, 2024. LI+\n\n### Références/Standards/Audits\n\n#### Sécurité\n\n- [OWASP Top Ten : Top 10 Web Application Security Risks](https://owasp.org/www-project-top-ten/), document standardisé des risques de sécurité des applications web. Liste et classifie l'ensemble de risques reconnus comme critiques pour les applications web \n- [Common Weakness Enumeration (CWE)](https://cwe.mitre.org/about/index.html), un groupe de travail qui maintient une liste des vulnérabilités connues des software et hardware\n- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/), des synthèses sur les différents types d'attaque et leur prévention\n- [OWASP : Input Validation Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html)\n- [OWASP : Attacks](https://owasp.org/www-community/attacks/), la liste des attaques les mieux connues\n- [OWASP : Secrets Management Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html), conseils sur la gestion des secrets;\n- [OWASP : Cryptographic Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html), conseils sur le stockage de données chiffrées;\n- [OWASP : Password Storage Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html), conseils sur le stockage de mots de passe;\n- [Sécurité : Chiffrement, hachage, signature ](https://www.cnil.fr/fr/securite-chiffrement-hachage-signature), publié par la CNIL\n- [NIST Special Publication 800-63B : Digital Identity Guidelines, Authentication and Lifecycle Management](https://pages.nist.gov/800-63-3/sp800-63b.html), document de référence publié par [le National Institute of Standards and Technology (NIST)](https://fr.wikipedia.org/wiki/National_Institute_of_Standards_and_Technology) sur les recommandations liées à la gestion de l'identité en ligne et des systèmes d'authentification. \n- [KeePassXC Application Security Review](https://molotnikov.de/keepassxc-review), de [Zaur Molotnikov](https://molotnikov.de/cv). Un audit du gestionnaire de mots de passe open source [KeePassXC](https://github.com/keepassxreboot/keepassxc). Contient de nombreuses informations utiles sur son fonctionnement et ses détails d'implémentation. [Télécharger le PDF (version 1.2)](https://molotnikov.de/docs/KeePassXC-Review-V1-Molotnikov.pdf)\n- [RFC 7519 : JSON Web Token (JWT)](https://datatracker.ietf.org/doc/html/rfc7519), publié par l'IETF. Le document décrivant le standard JWT\n\n#### RGPD\n\n- [Guide RGPD du développeur](https://www.cnil.fr/fr/guide-rgpd-du-developpeur), publié par la CNIL\n- [Guide RGPD de l'équipe de développement](https://lincnil.github.io/Guide-RGPD-du-developpeur/), publié par la CNIL. Plus récent\n- [Guide de la sécurité des données personnelles](https://www.cnil.fr/fr/guide-de-la-securite-des-donnees-personnelles), publié par la CNIL\n- [Techniques d'anonymisation des données](https://www.cnil.fr/sites/cnil/files/atoms/files/wp216_fr.pdf), \n- [Check list : Évaluer le niveau de sécurité des données personnelles de votre organisme](https://www.cnil.fr/sites/cnil/files/2024-03/guide_securite_donnees_personnelles_checklist.pdf), publiée par la CNIL\n- [Guide pratique : Les durées de conservation](https://www.cnil.fr/sites/cnil/files/atoms/files/guide_durees_de_conservation.pdf), publié par la CNIL. Pour bien définir la durée de conservation des données personnelles\n\n### Outils\n\n- [DAMN VULNERABLE WEB APPLICATION (DVWA)](https://github.com/digininja/DVWA), une application web PHP/MySQL extrêmement vulnérable. Son objectif principal est d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement légal, d'aider les développeurs web à mieux comprendre les processus de sécurisation des applications web et d'aider à la fois les étudiants et les enseignants à apprendre la sécurité des applications web dans un environnement de classe contrôlé. [Regarder sur YouTube des usages du projet](https://www.youtube.com/results?search_query=Damn+Vulnerable+Web+Application+)\n- [hydra](https://www.kali.org/tools/hydra/), Hydra est un programme de craquage de mot de passe parallélisé qui supporte de nombreux protocoles pour attaquer\n- [Dépôt : démo Same Origin Policy](https://github.com/paul-schuhm/demo-same-origin-policy), une démo de la Same Origin Policy\n- [Dépôt : démo JWT Authentification](https://github.com/paul-schuhm/demo-jwt), une démo de l'implémentation du standard JWT\n- [KeePassXC Application Security Review](https://molotnikov.de/keepassxc-review), de [Zaur Molotnikov](https://molotnikov.de/cv). Un audit du gestionnaire de mots de passe open source [KeePassXC](https://github.com/keepassxreboot/keepassxc). Contient de nombreuses informations utiles sur son fonctionnement et ses détails d'implémentation. [Télécharger le PDF (version 1.2)](https://molotnikov.de/docs/KeePassXC-Review-V1-Molotnikov.pdf)\n- [Xkpassword](https://beta.xkpasswd.net/), générateur de mots de passe basé sur [le comic *Password Strength* d'xkcd](https://xkcd.com/936/)\n\n\n### Articles / Sur le web\n\n- [74 % des cyberattaques sont causées par des facteurs humains, notamment des erreurs](https://securite.developpez.com/actu/355251/74-pourcent-des-cyberattaques-sont-causees-par-des-facteurs-humains-notamment-des-erreurs-le-vol-d-informations-d-identification-l-utilisation-abusive-de-privileges-d-acces-ou-l-ingenierie-sociale/)\n- [Des dépendances imaginaires aux conséquences réelles : l'IA invente des noms de logiciels et les devs les téléchargent](https://intelligence-artificielle.developpez.com/actu/355826/Des-dependances-imaginaires-aux-consequences-reelles-l-IA-invente-des-noms-de-logiciels-et-les-devs-les-telechargent-des-dependances-logicielles-fictives-ont-ete-integrees-dans-des-projets-reels/)\n- [Dangers du chiffrement (cryptage) des données d'une base de données MySQL/MariaDB ](https://www.developpez.net/forums/blogs/3170-sqlpro/b10593/dangers-chiffrement-cryptage-donnees-base-donnees-mysql-mariadb/), de Frédéric Brouard, 2024\n- [Des chercheurs ont découvert que le modèle d'IA GPT-4 d'OpenAI est capable de pirater des sites web et de voler des informations dans des bases de données en ligne sans aide humaine](https://intelligence-artificielle.developpez.com/actu/355391/Des-chercheurs-ont-decouvert-que-le-modele-d-IA-GPT-4-d-OpenAI-est-capable-de-pirater-des-sites-web-et-de-voler-des-informations-dans-des-bases-de-donnees-en-ligne-sans-aide-humaine/), sur développez.com\n- [La sécurité des conteneurs, qu'est-ce que c'est ?](https://www.redhat.com/fr/topics/security/container-security), un très bon article de RedHat sur la sécurité des conteneurs, de l'application conteneurisée à l’infrastructure sur laquelle le conteneur est déployée\n- [Why Forced Password Changes Reduce Security](https://kevquirk.com/why-forced-password-changes-reduce-security/), de Kev Quirk, ingénieur en sécurité depuis plus de 10 ans\n- [Don’t try to sanitize input. Escape output.](https://benhoyt.com/writings/dont-sanitize-do-escape/), de Ben Hoyt. Pourquoi faut-il préférer l'échappent au filtrage des input et quels impacts sur la sécurité\n- [Parcoursup : cachez ces vulnérabilités que je ne saurais voir !](https://www.zdnet.fr/actualites/parcoursup-cachez-ces-vulnerabilites-que-je-ne-saurais-voir-39964054.htm), un bel exemple de *sécurité par obscurité*\n- [Threat Modeling](https://fr.wikipedia.org/wiki/Mod%C3%A8le_de_menace)\n- [Threat Modeling Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html), publié par l'OWASP\n- [File upload security and good practices checklist](https://github.com/dilaouid/shitshit/blob/main/backend-good-practices-security/FILE_UPLOAD.md), une checklist de bonnes pratiques concernant l'upload (téléversement) de fichiers vers votre serveur\n- [xkcd explained : 936: Password Strength](https://www.explainxkcd.com/wiki/index.php/936:_Password_Strength)\n- [xkcd explained : 327: Exploits of a Mom](https://www.explainxkcd.com/wiki/index.php/327:_Exploits_of_a_Mom)\n\n### Conférences/Talks/Vidéos\n\n- [Building the ultimate login and signup](https://www.youtube.com/watch?v=E25KxLKwY-M\u0026list=PLS3XEhTy6-Ale8Et6pxRR2I3LYNt8-rX3\u0026index=18\u0026t=1270s), vous pensiez que construire un formulaire de connexion/inscription sécurisé à une application web est nue tâche triviale ? Ici vous verrez que non, un décorticage méthodique de toutes les potentielles failles de sécurité à prévoir quand on design un système d'authentification. Donné par Matt Cotterell, un ingénieur en sécurité basé en Nouvelle Zélande\n- [Same-origin policy: The core of web security, OWASP Wellington](https://www.youtube.com/watch?v=zul8TtVS-64\u0026list=PLS3XEhTy6-Ale8Et6pxRR2I3LYNt8-rX3\u0026index=138), [la *Same Origin Policy (SOP)*](https://fr.wikipedia.org/wiki/Same-origin_policy) merveilleusement bien expliquée. La vidéo de référence sur le sujet. Une spécification implémentée par les navigateurs, à connaître (au moins vaguement) pour tous les développeur·euse·s (front ou back). **Visionnage recommandé**\n- [Running an SQL Injection Attack - Computerphile ](https://www.youtube.com/watch?v=ciNHn38EyRc), une excellent démo d'injection SQL didactique, de [Mike Pound](https://www.nottingham.ac.uk/research/beacons-of-excellence/future-food/meet-the-team/michael-pound/index.aspx), sur la très bonne chaîne [Computerphile](https://www.youtube.com/@Computerphile)\n- [Never click on a Link!](http://talks.php.net/show/penguicon1/1), slides de la présentation de Rasmus Lerdorf sur la sécurité d'une application web, notamment sur l'attaque via des URL (PHP)\n\n\n### Légende bibliographie\n\n- *LP* : Livre Parcouru\n- *LE* : Livre Évoqué (entendu parler)\n- *LI* : Livre Inconnu\n- \"+\" : Recommandé\n- \"++\" : Fortement recommandé\n- \"-\" : Peu recommandé (rare que je la mentionne)\n- \"--\" : Non recommandé (rare que je la mentionne)\n\n\u003e Inspiré de [Comment parler des livres que l'on a pas lu ?](http://www.leseditionsdeminuit.fr/livre-Comment_parler_des_livres_que_l_on_n_a_pas_lus__-2514-1-1-0-1.html), de Pierre Bayard, publié chez Éditions de Minuit, 2007","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaul-schuhm%2Fsecurite-applications-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaul-schuhm%2Fsecurite-applications-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaul-schuhm%2Fsecurite-applications-web/lists"}