Compile code using the highest warning level available for your compiler and eliminate warnings by modifying the code \[[C MSC00-A|MSC00-A. Compile cleanly at high warning levels], [C+\+ MSC00-A|cplusplus:MSC00-A. Compile cleanly at high warning levels] \]. |
Sanitize all data passed to complex subsystems \[[C STR02-A| STR02-A. Sanitize data passed to complex subsystems]\] such as command shells, relational databases, or commercial-off-the-shelf (COTS) components. Attackers may be able to invoke unused functionality in these components through the use of SQL, command, or other injection attacks. This is not necessarily an input validation problem because the complex subsystem being invoked does not understand the context in which the call is made. Because the calling process understands the context, it is responsible for sanitizing the data before invoking the subsystem. |