【问题标题】:download and run exe from chrome browser using c++ plugin使用 c++ 插件从 chrome 浏览器下载并运行 exe
【发布时间】:2014-04-17 14:22:15
【问题描述】:

我有一个网页,当我点击一个按钮时,它应该从一个 url 下载一个 exe,并且该 exe 应该在没有用户干预的情况下自动调用。

在 Internet Explorer 中,我通过部署为 .cab 文件的 activex 控件 (.ocx) 实现了这一点。

我也计划将其扩展到 chrome 和 firefox 平台。 (第一步至少镀铬)。

我不想使用 Java 小程序(需要删除 Java 依赖项)。我知道我可以通过 Firebreath 插件实现这一点,但显然现在不是深入研究 NPAPI 插件的好时机(因为 NPAPI 已经逐渐淡出。Chrome 已经开始逐步淘汰 NPAPI)。

当我研究 NPAPI 的替代插件技术时,我偶然发现了 Google Native Client。在进一步阅读时,我知道 Nacl 也不适合我的需求,因为 os 调用 api 在 nacl 中不起作用(我希望 URLDownloadToFile api 或 createprocess 或 shellexecute 不起作用。如果我错了,请纠正我)。

我应该选择原生消息吗?是否缺少其他替代技术?请指导我。

【问题讨论】:

  • 我不认为任何病毒扫描程序会喜欢这个。浏览器人可能也会将此视为安全风险。
  • “它应该从一个 url 下载一个 exe,并且这个 exe 应该在没有用户干预的情况下自动调用” - 从一开始就是个坏主意。没有什么可以阻止您在未经用户同意的情况下自动单击按钮并调用可执行文件。
  • 这是一个重大的安全风险。无论您最终采用哪种解决方案,您都可能会因安全风险而被浏览器供应商阻止。

标签: c++ google-chrome plugins npapi chrome-native-messaging


【解决方案1】:

NPAPI 直到它消失才会让你做你想做的事;除了 Native Messaging 是唯一的选择。

正如其他人所提到的,这是一个非常糟糕的主意(tm)。

【讨论】:

    【解决方案2】:

    感谢所有人。我终于解决了 Launch Application Using Custom Protocol Handler 。 http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx 。这符合我的需要。

    【讨论】:

      【解决方案3】:

      如上所述,Chrome 的原生消息传递似乎是可行的方法 - 在 Chrome 上。

      首先,请看这里:此博客条目显示本机消息可用于启动“calc.exe”。我自己还没有尝试过 - 但它看起来很有希望: https://plus.google.com/+FrancoisBeaufort/posts/jdTrmmZL9Xh

      要记住的一点是,本机消息传递技术仅适用于 Chrome 扩展程序,这会引发一整套相关问题。

      (1) 是否可以使用组策略为所有用户安装 Chrome 扩展程序?或通过注册表? -是的,根据http://www.chromium.org/administrators/pre-installed-extensions 稍后编辑:只能通过注册表添加“已发布”扩展。见-https://developer.chrome.com/extensions/external_extensions

      (2) 你能检测出是否已经安装了一个扩展吗? -是的,Chrome Extension: How to detect if an extension is installed using Content Scripts

      所以也许有可能有一个两阶段的过程:

      -您的用户将前往网页,该网页将测试扩展程序(使用上面的#1)

      -如果不存在,让用户下载并安装 .exe(这将需要交互)。

      -.exe 将部署扩展文件并将其注册到 Chrome(使用上面的#2)

      -在后续访问中,已安装的扩展程序可用于启动/与现在已安装的 .exe 通信(使用本地消息传递)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-29
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 2018-02-14
        • 1970-01-01
        相关资源
        最近更新 更多