Our last course in this specialization focuses on credential management, cryptography, and vulnerabilities caused by poor HTML and HTTP usage and error handling. In our first module we discuss how using passwords for authentication. This course demonstrates what to do and what not to do when managing user credentials, including case studies, samples of vulnerable code and suggestions for managing user credentials in a secure fashion.
Module two describes how cryptography is a very useful tool, yet it can also be very fragile. A small error in design or implementation can destroy any benefits of using encryption in an application. You'll learn some of the common errors that developers make when using cryptography and how to remediate them.
In module three, we will demonstrate how in most scenarios, developing a “clever hack” to achieve some goal is applauded in programming. However, this isn’t the case when abusing HTTP or HTML to simplify some aspects of web design. This course demonstrates some of the numerous ways in which poor use of HTTP and HTML makes a web application vulnerable to attack.
In our last module of the course, we explain how handling potential errors in code is essential to protecting against many of the attacks described in this learning path. However, developers need to maintain a careful balance between providing too much and too little information in error messages. This course describes how going too far in one direction or another can leave an application vulnerable to attack.