我如何从现代浏览器中启动可执行文件?

时间:2015-07-10 10:41:30

标签: security web

我负责公司应用程序菜单页面(仅限Intranet)。它包含许多资源链接(网页和已安装的应用程序),并为当前用户量身定制。

过去,我使用applet允许直接从浏览器启动已安装的应用程序。

公司网络正在进行改造,我被告知找到一个不需要任何插件的解决方案。

我的第一次尝试是注册自定义协议处理程序。菜单提供程序包含所有链接和应用程序命令的定义,每个用户具有不同的权限。我可以想象,当为用户创建菜单时,命令可以编码并添加为custom://base64encodedcommand之类的内容。处理程序将解码命令,执行检查并执行它。

这适用于IE,FF和Chrome。目前,我们主要使用Windows工作站,它只能在公司内部网中使用。

这是一种可行的方法吗?有安全问题吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,通过任何解决方案,只能证明漏洞的存在,而不是缺乏漏洞。但是有一些必要条件,但还不足以让你的系统更能抵御攻击。

目前,您对base64编码执行字符串。这绝不会增加安全性。即使你选择了一些不同的方法,这只是通过默默无闻的安全性,并且很容易被有足够时间的人逆向设计。

您可以做的是设置某种公钥 - 私钥签名。因此,您可以使用自己的私钥对每个链接进行签名,这意味着允许执行此链接,甚至不应解码没有签名或无效签名的链接。

那么你所拥有的是custom:// + base64link + separator + base64signature

要记住的事情:

  1. 非常重要的是,只有您(或非常精选的一组人)才能访问私钥。这与任何其他pub-priv密钥系统相同。
  2. 如果签名无效,您不仅不应该运行链接,而且您甚至不能解码它(因此您签署base64字符串,而不是解码的命令)。假设它立刻就是攻击,甚至可能告诉用户这个事实。
  3. 我再说一遍,虽然这可以被认为是安全所必需的,但这还不够。所以继续考虑其他可能的攻击。<​​/ p>