为什么Java与其他编程语言相比是安全的?
Java供应商和社区表示“Java比其他语言更安全”。但我想知道怎么做 如果我们看看Java和.Net中的编程,它们看起来很相似 涉及.net编程的步骤为什么Java与其他编程语言相比是安全的?,java,.net,security,programming-languages,Java,.net,Security,Programming Languages,Java供应商和社区表示“Java比其他语言更安全”。但我想知道怎么做 如果我们看看Java和.Net中的编程,它们看起来很相似 涉及.net编程的步骤 编写.net程序。 将代码编译为MSIL(编译将源代码转换为Microsoft中间语言(MSIL)并生成所需的元数据) 将MSIL编译为本机代码(在执行时,即时(JIT)编译器将MSIL转换为本机代码。在此编译过程中,代码必须通过检查MSIL和元数据的验证过程,以确定代码是否可以确定为类型安全的) 运行代码(公共语言运行库提供了支持执行的基础结
<如果我们在两种语言中都看一下步骤,那么它们就几乎相同了,那么为什么“java与其他语言相比更安全?”<强> > /p> < p>你提到你读到的一些地方,但是你能重新阅读它吗?因为我猜当它被写的时候,作者会把java与C++ +/Fortran /c等比较: 还有一篇关于安全性的可测试性的老文章,你可以阅读
您可以看到,两者几乎相同……与C等相比,Java或.Net程序不会受到一些简单类型的安全漏洞的影响—缓冲区溢出或格式字符串错误
虽然这消除了一些可以获得远程代码执行的方法,但Java并没有采取任何措施来防止(例如)任何web应用程序漏洞。它对逻辑错误也没有帮助。Java之所以是一种安全的语言有很多原因,而且它肯定比某些语言更安全,但我认为说它比所有其他语言都安全是言过其实的 Java具有多种安全功能:
va_args
),等等)SecurityManager
和ClassLoader
可以很容易地让Java运行时通过调解对系统资源的访问,防止程序在运行时加载或生成任意代码,从而防止任意代码在计算机上执行。与C或C++相比,它可以读写任意值,发出任意的系统调用,生成和执行任意代码等。
String
是不可变的,final
,因此接收字符串的函数可以验证字符串,而不必担心另一个线程更改其值
希望这有帮助 引用你在哪里读到的参考文献。我现在想到的一点是,在.net中,你仍然可以编写“非托管代码”,它不会在CLR上运行,而在Java中,你编写的任何东西都只会在JRE上运行。是的,参考文献(或链接)将有助于其他人理解为什么你会这么说。定义“其他”。。。计算机世界中的语言比你们提到的几种语言还要多。也许最初的引语是关于Java vs C,或者Java vs Ada(可能是另一种说法:),Java比以前的语言更安全。net是继Java之后出现的,它有许多最好的想法。也就是说.net有更多的方法来突破安全编码,因此编写一个不安全的程序(你也可以用java编写)要容易得多。是的,我们永远不知道,他们可能也指php:)修改了问题并添加了链接。谢谢达尔玛维。。。你是Gaurang Gajjar的朋友吗?答案仍然是“它并不比其他语言(包括.Net)更安全”,你得到了错误的信息。如果你可以在Java中变异字符串,那么第4点就不是真的。“当你以通常的方式做事时,它肯定会强制执行,但会给你一种虚假的安全感”。@TimS。安装了适当的安全管理器后,该代码将触发安全异常并失败。