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