- Cybersecurity
- Java
- secure programming
- C/C++
- Cryptography
- Authentication Methods
- Identifying vulernabilities
- C/C++ Programming
- Java Programming
- security
Offert par
Ce que vous allez apprendre
Practice improving the security and robustness of your programs.
Create threat models and apply basic cryptography.
Evaluate and remediate fragile C++ library code.
Exploit common types of injection problems and fix the root causes.
Compétences que vous acquerrez
À propos de ce Spécialisation
Projet d'apprentissage appliqué
The courses provide ample practice activities including exploiting WebGoat, an OWASP project designed to teach penetration testing.
This Specialization is intended for software developers of any level who are not yet fluent with secure coding and programming techniques.
Certaines connaissances prérequises.
Certaines connaissances prérequises.
Comment fonctionne la Spécialisation
Suivez les cours
Une Spécialisation Coursera est une série de cours axés sur la maîtrise d'une compétence. Pour commencer, inscrivez-vous directement à la Spécialisation ou passez en revue ses cours et choisissez celui par lequel vous souhaitez commencer. Lorsque vous vous abonnez à un cours faisant partie d'une Spécialisation, vous êtes automatiquement abonné(e) à la Spécialisation complète. Il est possible de terminer seulement un cours : vous pouvez suspendre votre formation ou résilier votre abonnement à tout moment. Rendez-vous sur votre tableau de bord d'étudiant pour suivre vos inscriptions aux cours et vos progrès.
Projet pratique
Chaque Spécialisation inclut un projet pratique. Vous devez réussir le(s) projet(s) pour terminer la Spécialisation et obtenir votre Certificat. Si la Spécialisation inclut un cours dédié au projet pratique, vous devrez terminer tous les autres cours avant de pouvoir le commencer.
Obtenir un Certificat
Lorsque vous aurez terminé tous les cours et le projet pratique, vous obtiendrez un Certificat que vous pourrez partager avec des employeurs éventuels et votre réseau professionnel.

Cette Spécialisation compte 4 cours
Principles of Secure Coding
This course introduces you to the principles of secure programming. It begins by discussing the philosophy and principles of secure programming, and then presenting robust programming and the relationship between it and secure programming. We'll go through a detailed example of writing robust code and we'll see many common programming problems and show their connection to writing robust, secure programs in general. We’ll examine eight design principles that govern secure coding and how to apply them to your own work. We’ll discuss how poor design choices drive implementation in coding. We’ll differentiate between informal, formal, and ad hoc coding methods. Throughout, methods for improving the security and robustness of your programs will be emphasized and you will have an opportunity to practice these concepts through various lab activities. A knowledge of the C programming language is helpful, but not required to participate in the lab exercises.
Identifying Security Vulnerabilities
This course will help you build a foundation of some of the fundamental concepts in secure programming. We will learn about the concepts of threat modeling and cryptography and you'll be able to start to create threat models, and think critically about the threat models created by other people. We'll learn the basics of applying cryptography, such as encryption and secure hashing. We'll learn how attackers can exploit application vulnerabilities through the improper handling user-controlled data. We'll gain a fundamental understanding of injection problems in web applications, including the three most common types of injection problems: SQL injection, cross-site scripting, and command injection.
Identifying Security Vulnerabilities in C/C++Programming
This course builds upon the skills and coding practices learned in both Principles of Secure Coding and Identifying Security Vulnerabilities, courses one and two, in this specialization. This course uses the focusing technique that asks you to think about: “what to watch out for” and “where to look” to evaluate and ultimately remediate fragile C++ library code.
Exploiting and Securing Vulnerabilities in Java Applications
In this course, we will wear many hats. With our Attacker Hats on, we will exploit Injection issues that allow us to steal data, exploit Cross Site Scripting issues to compromise a users browser, break authentication to gain access to data and functionality reserved for the ‘Admins’, and even exploit vulnerable components to run our code on a remote server and access some secrets. We will also wear Defender Hats. We will dive deep in the code to fix the root cause of these issues and discuss various mitigation strategies. We do this by exploiting WebGoat, an OWASP project designed to teach penetration testing. WebGoat is a deliberately vulnerable application with many flaws and we take aim at fixing some of these issues. Finally we fix these issues in WebGoat and build our patched binaries. Together we will discuss online resources to help us along and find meaningful ways to give back to the larger Application Security community.
Offert par

Université de Californie à Davis
UC Davis, one of the nation’s top-ranked research universities, is a global leader in agriculture, veterinary medicine, sustainability, environmental and biological sciences, and technology. With four colleges and six professional schools, UC Davis and its students and alumni are known for their academic excellence, meaningful public service and profound international impact.
Foire Aux Questions
Quelle est la politique de remboursement ?
Puis-je m'inscrire à un seul cours ?
Une aide financière est-elle possible ?
Puis-je suivre le cours gratuitement ?
Ce cours est-il vraiment accessible en ligne à 100 % ? Dois-je assister à certaines activités en personne ?
Puis-je obtenir des crédits universitaires si je réussis la Spécialisation ?
Quelle est la durée nécessaire pour terminer la Spécialisation ?
What background knowledge is necessary?
Do I need to take the courses in a specific order?
D'autres questions ? Visitez le Centre d'Aide pour les Étudiants.