【问题标题】:Chrome PPAPI plugin to execute commands on windows system用于在 windows 系统上执行命令的 Chrome PPAPI 插件
【发布时间】:2015-05-01 22:13:49
【问题描述】:

我们之前使用 NPAPI 插件从我们的网站在 Windows 系统上执行一些命令。现在 NPAPI 消失了,我们正在尝试将内容移植到 PPAPI 或 NaCl,但似乎存在很多问题。

  1. Google 似乎为 Visual Studio 2010 和 Visual Studio 2012 提供了 vs_addin,但在链接阶段尝试将代码编译为 Pepper 插件时总是出错。该错误与 _MSC_VER 不匹配有关,因为 PPAPI 库中的目标文件的版本似乎为 1800,其中 VS2010 和 VS2012 的值应该分别为 1600 或 1700。
  2. 为解决此问题,我们尝试下载 Pepper 的旧副本,但 SDK 不提供该副本。不知怎的,我们在网上找到了pepper_25的版本,但后来好像插件没有postmessage功能。
  3. 尝试过使用 scriptableobjects,但看起来对它们的支持实际上早在 chrome 13 中的某个时候就被删除了?
  4. 如果我们尝试将其构建为 NaCl 插件,那么我们将无法访问 ShellExecuteA 等 Windows 函数,因为不包含相应的库。尝试包含库只会导致更多错误。
  5. 这可能通过使用带有本地消息传递的扩展程序来实现,但是除非扩展程序在网页上放置内容脚本,否则网站不能直接与扩展程序交互。作为网站的用户,可以在自己的系统上安装网站,我们必须扫描并在所有网页上添加内容脚本,这似乎不是一个好的选择,因为它可能导致系统变慢。

TLDR:

现在的问题是,我们如何构建一个可以在windows上执行命令的chrome插件?

感谢和问候

【问题讨论】:

  • 使用任何技术构建一个允许任意网站执行本机命令的插件非常危险。您是否考虑过本地消息传递与任何想要自己托管网站的人的说明相结合,以制作适用于他们网站实例的扩展的自定义版本?然后至少您将新的攻击面限制在特定站点。

标签: windows google-chrome plugins google-nativeclient ppapi


【解决方案1】:

简短的回答是,(根据设计)无法分发可以访问本机平台 API 的插件。 VS 插件有一种编译方式,但它只能在您的本地机器上运行。您可以开发 NaCl 或 PNaCl 插件,但仅限于 NaCl 的 API 和 Javascript。如果您需要原生 API,那么您可能需要查看 native messaging

【讨论】:

  • 谢谢 Derek,我会为此开发原生主机和扩展。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-15
  • 2012-01-25
  • 2013-10-21
  • 1970-01-01
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多