This session provides best practices for building secure and robust applications with modern C++ language features and toolchains. The emphasis is on integration of new language features such as strong enums, static assert, type inferencing, error codes, ... along with significant improvements in the toolchains such as improved static analysis the run-time address, thread, and undefined behavior sanitizers. We also discuss best practices for compiling and linking to harden the resulting libraries and executables including stack and heap protection, read-only stack, and use of fortified variant of the standard libraries.
The goal is to bring together a range of best practices into a single session and show how they can be integrated. There are a number of interesting build issues for maximizing productivity while maintain high security and robustness.
gleaned from several years of building retail point of sale applications.