3

加载网页后,有没有办法在客户端加载和运行 EXE 文件?[使用 java 脚本或 HTML ]

4

7 回答 7

3

出于明显的安全原因,(曾经||曾经)有几个 JS 接口,这些接口很可能被现代浏览器阻止。

因此,要么您的客户信任您并为您安装 [FF/IE/Safari/etc.] 扩展,要么...

但是,对于 FF 扩展方式,请参阅我在此线程上的回答

简而言之:

根据这篇文章启动外部应用程序可以如下完成:

var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("c:\\myapp.exe");
file.launch();

对于 IE,你可以尝试运行这个

<script lang='vbscript'>
    set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "C:\program files\program\program.exe"
</script>
于 2009-11-11T09:58:40.783 回答
2

在 MSIE 中,可以为此使用 ActiveX - 但用户必须允许安装/执行您的 ActiveX 控件。如果您正在查看您控制的某些环境(例如您的公司),这可能是一种方法。很久以前就使用过这样的合法“远程安装”功能;如今,要求用户下载和执行安装程序更容易(不依赖于浏览器,用户已经学会了如何做到这一点(喘气!))。

如果您的意思是“使用浏览器中的 JS/HTML”,则称为“任意远程代码执行”,是一个非常严重的安全漏洞。所以,谢天谢地,这是不可能的(您希望任何网站format c:在您的计算机上运行吗?这么认为)。

于 2009-11-11T09:58:41.173 回答
2

需要研究的是Java Web Start

显然,这是一种仅限 Java 的技术,但它本质上允许您从网页启动本地应用程序,并且以比启动任意 .EXE 更安全的方式执行此操作。

一个附带的好处是,它允许您通过更新站点上的存储库副本来将应用程序更新部署到所有用户 - 更新是自动提取的。

于 2009-11-11T10:09:33.577 回答
1

不应该这样做,如果用户想从您的站点运行 exe,他们会很乐意下载它然后运行它,但是如果该站点试图在有人访问该站点时自动运行 exe,这将是一个巨大的安全漏洞。

exe是做什么的?这可能与 javascript 甚至服务器端有关。如果您真的希望客户端运行可执行文件,其他选项是查看类似 .net click once deploy 的内容,您可以在其中将可执行文件发布到您的站点,然后客户端可以从该站点下载并安装,这具有以下优点:自动更新。

于 2009-11-11T09:58:06.137 回答
1

简短的回答 - 是的,它可以做到。长答案 - 不,它不能完成,这是非常糟糕的做法。

让我解释。

安全性是决定性因素,您几乎可以在 JavaScript 中编写任何内容,包括启动可执行文件的代码,但大多数浏览器不允许您启动 exe - 因为这显然存在巨大的安全风险。

我的建议是,以传统方式做事,如果您需要更好的客户端支持,请使用小程序甚至 active-x(但我会避免这种情况)。

于 2009-11-11T09:58:40.163 回答
1

从法律上讲,没有。


如果你是一个黑客兼破解者:
是的。旧版本的 Flash Player(我相信少于 9 个)中存在一个安全漏洞,可让您执行此操作。如果你足够聪明,你可以利用它并在用户机器上运行任何代码(至少在 windows/mac 上)。有关更多详细信息,请参阅此链接

于 2009-11-11T11:02:02.533 回答
0

不,这将是一个安全漏洞。Web 应用程序仅使用 HTML/Javascript 编写,有时还使用其他技术(如 Flash),这些技术被认为足够安全,可以在浏览器中运行。(尽管它们有时也存在安全漏洞。)

于 2009-11-11T09:57:56.197 回答