Java 有内置的防病毒软件吗?这是真的吗?
Posted
技术标签:
【中文标题】Java 有内置的防病毒软件吗?这是真的吗?【英文标题】:Does Java have a built-in Antivirus? Is it true? 【发布时间】:2011-02-04 21:33:00 【问题描述】:Java 有内置的防病毒软件吗? 我的一位朋友告诉我,JVM 本身就有——它被称为“沙箱”。这是真的吗?
【问题讨论】:
哈....时不时笑起来的感觉真好。 如果你相信,我有一座桥可以卖给你…… Java 还解决了世界饥饿问题。 Java 在 BP 漏油修复中至关重要 【参考方案1】:Java 确实有一个与安全相关的概念,称为“沙盒”,但它的工作方式与典型的防病毒产品大不相同。后者通常会在病毒被执行之前尝试通过签名或代码分析来捕获病毒。
另一方面,Java 沙箱允许您在运行 Java 代码的同时避免访问可能用于坏事的系统资源,例如无法访问任何文件。
但是,默认情况下,只有 Java 小程序和 Java Web Start 应用程序在沙箱中运行。常规 Java 应用程序可以完全访问您的系统。
【讨论】:
你是一个了解我需要什么的人。可以理解地解释它。非常感谢。 +1 表示没有嘲笑 OP 并实际回答了问题。【参考方案2】:怀疑。也许他指的是 JVM(在某种程度上)沙箱执行 Java 程序,以帮助防止它损坏主机操作系统。
【讨论】:
+1:假设这不是愚人节玩笑,这可能是简化的解释... 不,防病毒程序会主动追踪并识别病毒。沙盒只会让在环境中编写病毒变得更加困难(或不可能,尽管我不会声称对于 Java)。 您可能还会提到检查类的安全性的 Java 验证程序 (java.sun.com/docs/white/langenv/Security.doc3.html)。在 Java 平台的组件中,它可能与防病毒程序最相似。 你们错了,我运行的是沙盒企业版,感觉很安全。【参考方案3】:不,他们没有内置的防病毒软件。他是在 4 月 1 日告诉你的吗?
为了消除您的疑虑,sandbox 不是杀毒软件。
【讨论】:
沙盒绝不是“开发环境”。 我不确定我是否同意。 Sandbox 不是开发环境,而是 Java 安全模型的名称,提供受限的代码执行环境。【参考方案4】:java 有内置的杀毒软件吗?
没有。
【讨论】:
【参考方案5】:Java 有一个内置的安全模型,允许它执行不受信任的代码。这种模型称为“沙盒模型”。
它不是病毒扫描程序。相反,它限制了不受信任的代码的可能性,因此网页上的小程序无法访问您计算机硬盘上的文件。
您可以阅读有关Java's Security Architecture 的更多信息。
【讨论】:
【参考方案6】:java 使用一个名为 SecurityManager 的类来确定程序可以做什么或不能做什么,因此在某种意义上它实现了反漏洞代码,但不是专门的反病毒。
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/SecurityManager.html
通常意义上的防病毒软件会检测文件中的病毒并将其删除。这不是 java 内置的。
【讨论】:
【参考方案7】:没有。它所做的是在与操作系统(在某种程度上)分离的环境中运行程序,这在大多数情况下应该可以防止恶意代码造成任何损害。有点像运行 VMware - virii 和其他恶意软件对主机操作系统没有影响。
【讨论】:
【参考方案8】:我听说垃圾收集还可以作为一种方便的抗菌剂,使您的应用程序 99.99% 没有细菌。
每次使用后清洗。
【讨论】:
我认为你的愤世嫉俗是错误的。尽管 JVM 中没有“病毒扫描程序”,但有一些安全功能可以防止它执行任意代码。 你的评论真的让我发笑,我会给你的,但仍然有点粗鲁和放错地方。 我为此感到难过,但我无法抗拒,这只是开玩笑而不是恶意。该线程中的其他人已经发布了足够多的合适答案。【参考方案9】:JRE 中最接近字面“防病毒”的是签名 jar 的黑名单功能。如果发现签名的 jar 会导致安全问题,则可以将其阻止。这是为意外的安全漏洞而设计的,而不是故意阻止恶意代码。如果启用,还可以使用 CRL(证书撤销列表)或 OCSP(在线证书状态协议)撤销证书。传统的防病毒软件留给专业的防病毒产品,而不是试图生产半生不熟的替代品。
(今天的防病毒产品不仅仅是检查已知病毒。)
【讨论】:
以上是关于Java 有内置的防病毒软件吗?这是真的吗?的主要内容,如果未能解决你的问题,请参考以下文章