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. The problem here 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. |