Avoiding the CWE/SANS Top 25 Most Dangerous Programming Errors

Links from the class materials and other supplemental information, grouped by chapter:



Chapter 1: Introduction



Chapter 2: Secure Software Engineering

Links from the text:



Chapter 3: Security and the software development life cycle

Links from the text:



Chapter 4: Input validation

Links from the text:

Additional links, not from the course text, or, software needed for the chapter:

FCserver.class
FCserver.java Java version
FCserver.cpp C++ version



Chapter 5: Avoiding SQL injection

Links from the text:

Additional links, not from the course text, or, software needed for the chapter:

bblookup.java Java program for lab
postgresql-8.3-605.jdbc4.jar (Java) This class archive might be needed to use the database.

bblookup.cpp C++ program for lab using libpg
To compile:

c++ -lpq -o bblookup bblookup.cpp

bblookup-libpqxx.cpp C++ program for lab using libpqxx
To compile:

c++ -lpq -lpqxx -o bblookup-libpqxx bblookup-libpqxx.cpp

Chapter 6: Avoiding OS command injection

Links from the text:

Additional links, not from the course text, or, software needed for the chapter:

c++cmdinject.c
cmdinject.java



Chapter 7: Producing clean output

Links from the text:

Additional links, not from the course text, or, software needed for the chapter:

logbox.jar Run by

java -jar logbox.jar
Or in some cases just by double-clicking on it.

logbox.zip Source for logbox (from Eclipse).

syslogger.cpp Compile by:

g++ -o syslogger syslogger.cpp


Chapter 8: Cross-site scripting

Links from the text:



Chapter 9: Cross-site request forgery (CSRF)

Links from the text:



Chapter 10: Logging and error messages

Links from the text:



Chapter 11: Cryptography Fundamentals

Links from the text:



Chapter 12: Using cryptography to enhance security

Links from the text:



Chapter 13: Authentication

Links from the text:



Chapter 14: Least privilege

Links from the text:



Chapter 15: Authorization and Access Control

Links from the text:



Chapter 16: State and the web

Links from the text:



Chapter 17: Stack overflows for C/C++



Chapter 18: Other buffer overflows for C/C++



Chapter 19: Buffer overflows and interpreted languages



Chapter 20: Race conditions

Links from the text:



Chapter 21: Resource access



Chapter 22: Resource management



Chapter 23: Coding errors



SkillBridge Training

Examples from the class notes (or, all as one file).

Selected Solutions from the class notes (no looking until you have solved the problems!). Note that all solutions are in an appendix of your course book. All solutions in a compressed tar file.


Evaluation form (if needed)