由于长期以来字符串操作中的错误被公认是C和C++中缓冲区溢出问题的首要来源,因此人们已经设计了很多种缓解策略,其中包括:预防缓冲区溢出的发生;侦测缓冲区溢出并安全地恢复,使得漏洞利用企图无法得逞。
与完全依赖一种给定的缓解策略相比,通常更好的做法是结合使用多种策略以提供更深入的防御措施。常见的做法是坚持使用一种安全的方式实现字符串操作(一种预防性策略),并且辅以一个或多个运行时侦测和恢复方案。