为什么Java被标记为“安全”语言?

2022-09-01 16:26:42

我想这是一个普遍的问题,但我正在学习java(SE / ME)的入门课程,学习材料声称java通常用于“安全目的”。然而,它没有解释他们声称Java包含良好安全性的含义。

是黑客证明吗?它是否产生高度稳定的软件?什么?

从我的角度来看(目前),安全性在于它掌握在编写代码的开发人员手中,而不是语言本身?


答案 1

恕我直言,这是一个非常具有误导性的说法。在 Java 中,您无法访问越界数组,也没有指针,因此在 Java 中不可能利用堆栈损坏或缓冲区溢出等几个安全漏洞。但是Java本身并不比任何其他语言更安全。只是犯可能导致安全漏洞的错误的机会更少。实际上,这减少了安全漏洞,但说Java是安全的是完全误导性的。


答案 2

有两件事使Java在某些方面比其他语言“更安全”:

  • 自动数组边界检查和缺少手动内存管理使得某些类别的编程错误变得不可能,这些错误通常会导致严重的安全漏洞(如缓冲区溢出)。大多数其他现代语言都具有此功能,但是在Java首次出现时,C和C++是占主导地位(并且仍然是主要的)应用程序开发语言,却没有。
  • 安全管理器的概念使得在“沙箱”中运行Java应用程序相对容易,这可以防止它们对运行它们的系统造成任何损害。这在Java的早期推广中发挥了重要作用,因为Applets被设想为一种无处不在的安全方式来拥有客户端Web应用程序。