Dieser Kurs wird Ihnen helfen, eine Grundlage für einige der grundlegenden Konzepte der sicheren Programmierung zu schaffen. Wir lernen die Konzepte der Bedrohungsmodellierung und der Kryptographie kennen und Sie werden in der Lage sein, Bedrohungsmodelle zu erstellen und kritisch über die von anderen erstellten Bedrohungsmodelle nachzudenken. Wir lernen die Grundlagen der Anwendung von Kryptographie, wie Verschlüsselung und sicheres Hashing. Wir lernen, wie Angreifer Schwachstellen in Anwendungen durch den unsachgemäßen Umgang mit benutzergesteuerten Daten ausnutzen können. Wir erlangen ein grundlegendes Verständnis für Injektionsprobleme in Webanwendungen, einschließlich der drei häufigsten Arten von Injektionsproblemen: SQL-Injection, Cross-Site Scripting und Command Injection.
Wir werden auch die Anwendungsauthentifizierung und die Sitzungsverwaltung behandeln, wobei die Authentifizierung eine wichtige Komponente einer sicheren Webanwendung ist und die Sitzungsverwaltung die andere Seite derselben Medaille darstellt, da der authentifizierte Status von Benutzeranfragen ordnungsgemäß behandelt und als eine Sitzung ausgeführt werden muss. Wir werden uns mit der Offenlegung sensibler Daten befassen und erfahren, wie Sie die Daten Ihrer Kunden schützen können. Wir besprechen, wie Sie passwortbezogene Informationen effektiv speichern und die eigentlichen Klartextpasswörter nicht speichern. Wir werden an einer Programmieraufgabe teilnehmen, die Ihnen helfen wird, die Mechanismen zur effektiven Speicherung passwortbezogener Informationen besser zu verstehen. Nebenbei werden wir Möglichkeiten besprechen, diese Probleme zu vermeiden und zu entschärfen, und wir werden Spaß haben und zwei verschiedene Schwachstellen in einer Webanwendung namens WebGoat ausnutzen, die so konzipiert wurde, dass sie verwundbar ist.