Ensure that all protocols are strictly defined, such that all out-of-bounds behavior can be
identified simply, and require strict conformance to the protocol.
Use a language that does not allow this weakness to occur or provides constructs that
make this weakness easier to avoid.