我目前正在阅读 Gary McGraw 的“Software Security: Build Security In”,他区分了安全漏洞和安全漏洞。安全漏洞是代码中的实现错误,而漏洞更多是在软件的架构/设计方面。他写道,安全缺陷往往在错误和缺陷之间的比例约为 50/50。
然而,这是在 2006 年写的,他提到了 C 和 C++ 等语言。例如,有很多关于缓冲区溢出的讨论。我的问题是:这与 Scala 的相关性如何?显然,实现中的错误仍然会导致安全风险,但是在 JVM 上使用托管语言进行边界检查似乎可以减轻 McGraw 所说的一大类错误。使用像 Scala 这样的语言,软件安全已经更多地转向事物的架构和逻辑方面,这是一个合理的说法吗?或者,更具体地说,Scala 中的静态代码分析对安全性的重要性是否不如 C 和 C++ 等语言重要?如果不是,为什么不呢?