Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我有一个包含病毒的文件,并且我在Java程序中以编程方式打开该文件,病毒会激活吗?_Java_Virus - Fatal编程技术网

如果我有一个包含病毒的文件,并且我在Java程序中以编程方式打开该文件,病毒会激活吗?

如果我有一个包含病毒的文件,并且我在Java程序中以编程方式打开该文件,病毒会激活吗?,java,virus,Java,Virus,如果文件包含病毒,除非执行该文件,否则不会激活该病毒 在java中打开文件是否会导致执行该文件,从而激活病毒,例如使用 BufferedReader reader = new BufferedReader(new FileReader(filename)); 不,使用FileReader或任何其他用Java读取文件的方法都不会激活病毒。读取文件不是在执行其代码,因此您是安全的:)步骤1:创建一个执行任何类型操作的简单.exe。第二步:用你的方法打开它。步骤3:检查是否执行了该操作。第四步:盈利

如果文件包含病毒,除非执行该文件,否则不会激活该病毒

在java中打开文件是否会导致执行该文件,从而激活病毒,例如使用

BufferedReader reader = new BufferedReader(new FileReader(filename));

不,使用
FileReader
或任何其他用Java读取文件的方法都不会激活病毒。

读取文件不是在执行其代码,因此您是安全的:)步骤1:创建一个执行任何类型操作的简单.exe。第二步:用你的方法打开它。步骤3:检查是否执行了该操作。第四步:盈利!这个问题似乎更适合于《著名的遗言》。如果正在读取的文件经过精心设计,利用了JVM流处理代码中的零日漏洞,该怎么办?@MickMnemonic,当然你是对的,但问题有点不同,它是:“用java打开文件会导致执行吗?”理论上答案是否定的,它不应该——根据文件,仅此而已。我们是否信任Java和JVM取决于我们。你确定吗?如果是的话,如何确定?理论上,Java虚拟机可能存在一个缺陷,它会从读取的数据中开始执行字节码。理论上,有人可以创建一个数据文件来利用它。极不可能。阅读其他一些病毒,比如“我爱你”之类的,甚至不太可能成为问题;有一个目标对象反序列化,基本上是“从文件中读取”(虽然是二进制的)。谢谢你这么快的回答,我会接受这个答案。谢谢你John,因为这个文件不是用Java打开的,所以不太可能包含JVM相关的漏洞,也谢谢你Mick的讨论,反序列化漏洞的链接是一个有趣而可怕的读物从某种意义上说,反序列化“漏洞”是“按设计工作的”——你有一种方法可以将一个对象从一个程序传输到另一个程序——如果你接受一个来自不可信源的对象,你几乎可以得到你应得的东西。但它实际上并不是一个Java缺陷,就像让您执行注入攻击的坏网页是SQL中的一个缺陷一样。