Principles of Secure Coding

  • 4.4
Approx. 16 hours to complete

Course Summary

Learn the principles of secure coding to develop secure software applications with this course. Explore common vulnerabilities and best practices to prevent them.

Key Learning Points

  • Understand common software vulnerabilities and how to prevent them
  • Learn secure coding practices to minimize the risk of cyber attacks
  • Develop a strong foundation in secure coding principles

Related Topics for further study


Learning Outcomes

  • Develop secure software applications using secure coding principles
  • Understand common software vulnerabilities and how to prevent them
  • Implement best practices for minimizing the risk of cyber attacks

Prerequisites or good to have knowledge before taking this course

  • Basic understanding of programming concepts
  • Familiarity with at least one programming language

Course Difficulty Level

Intermediate

Course Format

  • Online self-paced course
  • Video lectures
  • Quizzes and assignments
  • Peer-reviewed assessments

Similar Courses

  • Cybersecurity Fundamentals
  • Introduction to Cyber Security

Related Education Paths


Notable People in This Field

  • Bruce Schneier
  • Troy Hunt
  • Mikko Hyppönen

Related Books

Description

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.

Outline

  • Secure Programming Philosophy
  • Course Introduction
  • Module 1 Introduction
  • The Philosophy of Secure Programming
  • Defining Secure Programming
  • Robust vs. Secure Programming
  • Security Policies and Procedures
  • Secure Programming General Philosophy
  • Checking Design and Implementation
  • Where to Look for Vulnerabilities
  • Secure Programming Summary
  • A Note From UC Davis
  • Module 1 Practice Quiz
  • Module 1 Quiz
  • Secure Programming Design Principles
  • Module 2 Introduction
  • Secure Programming Design Principles Overview
  • Principle of Least Privilege
  • Fail-Safe Defaults
  • Principle of Economy of Mechanism
  • Principle of Complete Mediation
  • Separation of Privilege Principle
  • Principle of Open Design
  • Principle of Least Common Mechanism
  • Principle of Least Astonishment
  • Secure Programming Design Principles Summary
  • Complete Mediation - What Is Going On?
  • Module 2 Practice Quiz
  • Module 2 Quiz
  • Robust Programming
  • Module 3 Introduction
  • Robust Programming Overview
  • Robust Programming Basic Principles
  • An Example Of Fragile Code
  • Error Handling
  • Cohesion, New Interfaces, and Token Generation
  • Token Generation and Interpretation
  • Creating and Deleting a Queue
  • Adding and Removing Elements to a Queue
  • Before You Begin This Module...
  • Fragile Programs - What Is Going On?
  • Module 3 Practice Quiz
  • Module 3 Quiz
  • Methods for Robustness
  • Methods for Robustness Overview
  • Methods Overview: Formal, Informal, and Ad Hoc Methods
  • Overview of Formal Methods
  • Login Program Example
  • Incorporating Hierarchical Decomposition Methodology
  • Login Program: Authenticating a User
  • Login Program: Preconditions and Postconditions
  • Course Summary
  • Robust Programs - What Is Going On?
  • Module 4 Practice Quiz
  • Module 4 Quiz

Summary of User Reviews

Learn about secure coding principles with Coursera. This course has received positive reviews from many users. One key aspect that users enjoyed was the interactive and hands-on approach to learning. Pros: - Interactive and hands-on approach to learning - Good pace and structure - Clear explanations and examples - Relevant course material - Engaging instructor Cons: - Some technical difficulties with the platform - Difficulty accessing course materials at times - Lack of depth in certain topics
English
Available now
Approx. 16 hours to complete
Matthew Bishop, PhD
University of California, Davis
Coursera

Instructor

Matthew Bishop, PhD

  • 4.4 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses