编写安全程序的主要困难在于编写它们需要一种不同的思维模式,简而言之,一种偏执的思维模式。原因是错误(也称为缺陷或漏洞)的影响可能截然不同。
普通的非安全程序有很多错误。虽然这些错误是不受欢迎的,但这些错误通常涉及罕见或不太可能发生的情况,如果用户偶然发现了一个错误,他们将来会尽量避免以这种方式使用该工具。
在安全程序中,情况则相反。某些用户会故意寻找并制造罕见或不太可能发生的情况,希望这种攻击能让他们获得不应有的特权。因此,在编写安全程序时,偏执是一种美德。