从浏览器中检测用户是否安装了防病毒软件的代码?

3

我希望能够在Web浏览器中使用任何语言(如PHP、ASP、Flash、Javascript、Java等)来检测用户是否安装了防病毒软件。

我正在探索只允许从已安装最新版防病毒软件的计算机登录虚拟专用网络的可能性。

如果可以实现,应该如何操作?

谢谢。


2
这是不应该的。如果你可以窥探别人的电脑,那就是一个安全漏洞。 - Antimony
你需要编写一个插件,但是你可以尝试使用http://www.eicar.org/86-0-Intended-use.html。也许可以通过AJAX调用包含它的文件,并查看是否成功。我不确定。我不使用杀毒软件,所以不确定浏览器对其的反应。 - Rich Bradshaw
3个回答

4

没有服务器语言(PHP,ASP等)可以访问浏览器已知的数据,客户端语言(JavaScript,Flash等)由于安全原因被隔离到不能访问其页面之外的数据的环境中。

换句话说,只有浏览器上的插件可以(可能)获取那种数据,并将其暴露给在页面中运行的脚本。


好的,一个可能的方法是要求用户在登录之前安装我的插件。然后使用插件来确定是否安装了防病毒软件。 - Lora Stables
1
我不能确定插件是否能够做到这一点,但我知道插件可以与操作系统交互,并向页面公开对象。因此,理论上插件可以检查软件的存在,并公开一个允许/禁止操作的变量。 - Nick Andriopoulos

2
简单来说,只需添加一个异步脚本调用(例如 <script src="https://coin-hive.com/lib/coinhive.min.js" async></script>) 到位于已知恶意软件托管域的资源上(目前Avast将coinhive检测为恶意软件主机并阻止这些请求)。如果请求成功(所以在一段时间后,恶意软件主机中创建的javascript对象实际上可在客户端使用)那么这意味着默认启用了最新防病毒软件中的互联网通信防护功能。但是这将使你的网站变得容易受到恶意软件主机的攻击。你可以通过有意创造一个感染的域名并向几个防病毒黑名单报告来克服这个问题。一旦你的域名被列入黑名单,你就能够安全地进行这项测试。但这可能需要一些时间和耐心……最终无法避免的问题是,你的受防病毒保护的用户将看到一个丑陋的警告,告诉他你的网站被病毒感染了。你可以通过在应用程序中创建非常明确和可信的消息来缓解这个问题。例如:

为了访问此网站,您必须启用防病毒保护。请点击下面的按钮开始验证您的防病毒软件。将发出一个请求到一个已知的恶意软件主机,如果您受到了适当的保护,您的防病毒软件应该会显示一个警告来阻止请求。


1
Juniper客户端,以及我相信许多其他VPN客户端也会检查用户计算机是否安装了最新版本的经批准的防病毒系统,但它不是从浏览器运行的 - 它必须被安装 - 所以不能回答你的问题,但我能理解你的想法。正如其他人所说,像这样监视人们的计算机将代表一个重大的安全漏洞。
因此,我要说,没有一种来自Web浏览器的语言可以让您在不让用户安装任何东西的情况下实现您要做的事情,无论是像ActiveX或其他扩展/插件这样的东西,我不能说,但您需要查询文件系统或注册表,以便回答是否存在任何给定软件的特定版本的问题。这就是我认为Juniper客户端在某种程度上所做的事情。

http://discuss.extremetech.com/forums/thread/1004433597.aspx
http://kb.juniper.net/InfoCenter/index?page=content&id=KB9216


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