Full recognition of inputs before processing

Explanation: A component that accepts an input without checking its validity presents a path that an attacker can probe.
Vulnerabilities addressed: Addresses exploitation of input-handling code by maliciously crafted inputs.
Developer resources required: Requires specification of input language, program source code, and software framework for generating recognizer for input language.
Evaluator resources required: Requires audit of software and its data language definitions for adherence to the design principle.
Source: www.computer.org