Java有内置的防病毒软件吗?这是真的吗?

15

Java有内置的杀毒软件吗?
我的一个朋友告诉我JVM本身具有这一功能——称之为“沙盒”。这是真的吗?


15
哈哈,偶尔笑一笑感觉很棒。 - Jasarien
13
如果你相信那个,我有座桥要卖给你... - OMG Ponies
15
Java也能解决世界饥饿问题。 - Frank Krueger
2
Java在BP石油泄漏修复中发挥了关键作用。 - Chris J
9个回答

40

Java确实有一个与安全相关的概念称为“沙箱”,但它与典型的反病毒产品工作方式非常不同。后者通常尝试通过签名或代码分析在执行之前捕获病毒。

另一方面,Java沙箱允许您运行Java代码,同时禁止它访问可能被用于做坏事情的系统资源,例如没有访问任何文件的权限。

然而,默认情况下,只有Java小应用程序和Java Web Start应用程序在沙箱中运行。普通的Java应用程序可以完全访问您的系统。


8
你是理解我需求并且能够清晰易懂地解释它的人。非常感谢。 - Praveen
6
加1分,因为没有嘲笑楼主并且实际回答了问题。 - snemarch

19

存疑。也许他指的是JVM在一定程度上对Java程序进行沙箱隔离,以防止其对主机操作系统造成损害。


1
+1:假设这不是愚人节玩笑,这很可能是简化的解释... - OMG Ponies
1
不,防病毒程序会积极跟踪和识别病毒。沙箱只是使在环境中编写病毒更加困难(或不可能,尽管我不会对Java这样说)。 - Justin Ethier
2
您还可以提到Java验证器(http://java.sun.com/docs/white/langenv/Security.doc3.html),它会检查类的安全性。在Java平台的各个组件中,它可能与杀毒软件程序最相似。 - erickson
1
你们错了,我正在运行 Sandbox 企业版,感觉很安全。 - Persimmonium

14

不,它们没有内置的杀毒软件。他是在愚人节告诉你这个消息吗?

为了澄清你的疑虑,沙盒技术并不是杀毒软件。


沙盒绝不是“开发环境”。 - Michael Borgwardt
我不确定是否同意。沙箱不是开发环境,而是Java安全模型的名称,提供受限的代码执行环境。 - Frederik

7

Java有内置的防病毒软件吗?

没有。


7

Java内置了一个安全模型,可以执行不受信任的代码。这个模型被称为“沙箱模型”。

它不是病毒扫描器。相反,它限制了不受信任的代码的可能性,使得网页上的小应用程序无法访问您计算机硬盘上的文件。

您可以阅读有关Java安全架构的更多信息。


4
Java使用一个名为SecurityManager的类来确定程序能够执行什么操作,因此在某种程度上它实现了反利用代码,但并不是特别针对防病毒。通常意义上的防病毒程序会检测文件中的病毒并将其移除,但Java中没有内置此功能。
参考链接:http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html

3

不是的。它所做的是在一个与操作系统(有点)分离的环境中运行程序,这样,在大多数情况下,可以防止恶意代码造成任何损害。有点像运行 VMware - 病毒和其他恶意软件对主机操作系统没有影响。


2

我听说垃圾回收也可以作为一种方便的抗菌剂,使您的应用程序99.99%免受细菌感染。

每次使用后请清洗。


我认为你的愤世嫉俗是不恰当的。虽然JVM中没有“病毒扫描器”,但有一些安全功能可以防止它执行任意代码。 - Frederik
你的评论确实让我笑了,这点我承认,但还是有点粗鲁和不合时宜。 - Jakob
我为这样做感到不好,但我忍不住了,这只是开玩笑,并非恶意。这个帖子中其他人已经发布了足够合适的答案。 - djhworld

2
JRE中最接近字面意义上的“反病毒”功能是针对已签名JAR文件的黑名单功能。如果发现签名JAR文件存在安全问题,可以将其阻止。这是为了意外安全漏洞而设计的,而不是为了阻止恶意代码。此外,如果启用了CRL(证书吊销列表)或OCSP(在线证书状态协议),还可以撤销证书。传统的反病毒功能留给专业的反病毒产品,而不是试图生产一种不成熟的替代品。
(今天的反病毒产品不仅仅检查已知病毒。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接