2013-03-18 56 views
2

我希望能够使用Web浏览器(PHP,ASP,Flash,Javascript,Java等)的任何语言来检测用户是否安装了防病毒软件。检测用户是否从浏览器安装了防病毒软件的代码?

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

可以这样做,如果是的话如何?

谢谢。

+2

它应该是不可能的。如果你可以窥探人民电脑,那是一个安全漏洞。 – Antimony 2013-03-18 22:03:36

+0

您需要编写一个插件,但您可以尝试使用http://www.eicar.org/86-0-Intended-use.html。也许对包含它的文件进行AJAX调用,看看它是否成功。不知道。我不使用AV,所以不确定浏览器如何对它做出反应。 – 2013-03-18 22:27:35

回答

4

没有服务器语言(PHP,ASP等)可以访问浏览器已知的数据,并且客户端语言(Javascript,Flash等)被沙箱化为一个环境,出于安全原因他们无法访问页面外部的数据。

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

+0

好的,所以可能的方法是要求用户在登录之前安装了我的插件。然后使用插件确定是否安装了防病毒软件。 – 2013-03-18 22:23:56

+1

我不确定插件能做到这一点,但我确实知道插件可能会与操作系统交互,并将对象暴露给页面。因此,理论上插件可以检查是否存在软件,并公开允许/禁止操作的变量。 – hexblot 2013-03-18 22:25:07

1

Juniper客户端,我确信许多其他VPN客户端也会检查以确保用户计算机安装了已批准的AntiVirus系统的最新版本,但它不是从浏览器运行 - 它具有是安装虽然 - 所以不回答你的问题,但我可以看到你来自哪里。正如其他人所说的那样窥视人们的计算机会是一个重大的安全漏洞。

所以我想说的是,没有任何语言来自网络浏览器,它可以让你在没有让用户在他们的计算机上安装某些东西的情况下实现你想要做的事情,无论这是类似于ActiveX还是其他扩展/插件我不能说,但你需要能够查询文件系统或注册表,以回答给定的软件的给定版本是否存在的问题。这就是我所想的瞻博客户端不会在一定程度上

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

0

简单,只需添加一个异步脚本调用(如:<script src="https://coin-hive.com/lib/coinhive.min.js" async></script>)到位于已知的恶意软件的资源托管域(目前Avast会将恶意软件检测为恶意软件主机,并阻止这些请求)。如果请求成功(因此在恶意软件主机中创建的javascript对象实际上在一段时间后在客户端中可用),这意味着在最近的防病毒软件中默认启用的Internet通信没有防病毒保护。

这会让您的网站容易受到恶意软件主机的攻击。您可以通过有意创建受感染域并将其报告给多个防病毒黑名单来解决此问题。一旦你将自己的域名列入黑名单,你将能够安全地进行这项测试。但它可能需要一些时间和耐心....

最后不可避免的问题是,您的防病毒保护的用户会看到来自防病毒的一个丑陋的警告告诉他,您的网站感染了病毒。您可以通过在您的应用中创建非常明确和可靠的消息来缓解此问题。类似这样的:

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

相关问题