Ce cours vous aidera à jeter les bases de certains des concepts fondamentaux de la programmation sécurisée. Nous apprendrons les concepts de modélisation des menaces et de cryptographie et vous serez en mesure de commencer à créer des modèles de menaces et de réfléchir de manière critique aux modèles de menaces créés par d'autres personnes. Nous apprendrons les bases de l'application de la cryptographie, comme le chiffrement et le hachage sécurisé. Nous apprendrons comment les attaquants peuvent exploiter les vulnérabilités des applications par le biais d'une mauvaise manipulation des données contrôlées par l'utilisateur. Nous acquerrons une compréhension fondamentale des problèmes d'injection dans les applications web, y compris les trois types de problèmes d'injection les plus courants : L'injection SQL, les scripts intersites et l'injection de commandes.
Nous aborderons également l'authentification des applications et la gestion des sessions, l'authentification étant un élément majeur d'une application web sécurisée et la gestion des sessions étant le revers de la même médaille, puisque l'état authentifié des demandes des utilisateurs doit être correctement géré et exécuté en tant que session. Nous découvrirons les problèmes liés à l'exposition des données sensibles et la manière dont vous pouvez contribuer à protéger les données de vos clients. Nous verrons comment stocker efficacement les informations relatives aux mots de passe et comment ne pas stocker les mots de passe en clair. Nous participerons à un exercice de codage qui vous aidera à mieux comprendre les mécanismes de stockage efficace des informations liées aux mots de passe. En cours de route, nous discuterons des moyens de surveiller et d'atténuer ces problèmes et nous pourrons nous amuser à exploiter deux vulnérabilités différentes dans une application web conçue pour être vulnérable, appelée WebGoat.