• Online, Self-Paced
Course Description

In this course, you'll explore techniques to help you secure your C/C++ code including how to securely work with and validate data and a number of best practices for writing defensive and secure code.

Learning Objectives

Defending Code in C/C++

  • start the course
  • recognize how to properly interface with data in C/C++
  • demonstrate some common data validation techniques employed to create secure C/C++ applications
  • identify why casting in the C++ style is preferred to the C style

Best Practices for Defensive Coding

  • recognize how to properly use operator overloading in C/C++
  • identify the correct way to access internal class data
  • describe why for-loops are preferred to while-loops
  • recognize how to keep functions focused and concise
  • identify the best way to use references and pointers and why you should avoid raw pointers
  • recognize the importance of good readability for planning and maintaining code

Practice: Secure a C/C++ Application

  • use defensive coding techniques to create a secure C/C++ application

Framework Connections

The materials within this course focus on the NICE Framework Task, Knowledge, and Skill statements identified within the indicated NICE Framework component(s):

Specialty Areas

  • Software Development


If you would like to provide feedback for this course, please e-mail the NICCS SO at NICCS@hq.dhs.gov.