It&#x27;s somewhat orthogonal to your point, but delimiters are theoretically more secure: Language Theoretic Security (langsec)[1][2] observes that any program that accepts input is an implementation of a recognizer for some formal language. The problem, with respect to network security, is:<p>1. The formal language is usually informally specified, which leads to...<p>2. The parsers for these languages are implemented in an ad-hoc fashion, with the logic scattered throughout the codebase.<p>The remedy is to:<p>1. Formally specify the language, and limit it&#x27;s power to regular expression, or, at worse, deterministic context-free (this is basically a recapitulation of the principle of least privilege)<p>2. Use explicit state machines for the parsing logic.<p>The problem with binary protocols is that they tend to rely on length field, which automatically makes the formal language at least context-sensitive. This is a no-no from the langsec point of view because it&#x27;s much harder to secure such protocols, because they tend to accidentally give rise to hidden Turing Machines that a hackers can then program against). Conversely, delimiters are necessary in order to limit your grammar to regular.<p>[1] <a href="http:&#x2F;&#x2F;langsec.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;langsec.org&#x2F;</a><p>[2] <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=UzjfeFJJseU" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=UzjfeFJJseU</a>