【问题标题】:Prompt the user to install ActiveX/.Net Class Library from browser提示用户从浏览器安装 ActiveX/.Net 类库
【发布时间】:2010-12-04 12:56:33
【问题描述】:

我构建了一个 .NET 类库项目,该项目在调用时访问 mshtml.HTMLDocument(来自 JavaScript)。在我的机器上一切正常,因为我将 .NET Configuration for Trusted Sites 中的权限更改为具有完全访问权限。

但对于最终用户,我希望 Internet Explorer 像 Windows 更新那样提示他们。

我使用强名称和自动签名证书对程序集进行了签名,并且我断言非托管代码 SecurityPermission,但仍然没有询问用户的“黄条”。

有人知道如何触发这个提示吗?谢谢

稍后编辑:更多细节: 我将组件嵌入为<object classid="dllname.dll#namespace.classname" ><object>,它可以工作,但没有安全权限。

如果我像<object classid="clsid:..guid.." codebase="dllname.dll#-1,-1,-1,-1"></object> 那样嵌入它,安装弹出窗口的权限就会出现,但对象无法实例化。

更新:我将我的类设为 COM 类,实现了安全脚本,我用它制作了一个 MSI 并将其放入 .CAB 文件中。如果用户在 Trusted Roots 中有我的证书,它就会安装,并且它可以工作。

但是,如果它不受信任,它就不起作用(对用户没有问题,只是'..阻止了以下 activex 来自..'。这 真的意味着我必须把我的钱变成了 SSL 证书?!?

【问题讨论】:

  • 为什么不使用 Silverlight 而不是 ActiveX?出于安全考虑,许多人避免使用 ActiveX。
  • 嗯,它实际上是通过 WIALib 使用扫描仪,然后发布扫描的图像。我无法使用 Silverlight 或 Flash 进行扫描。
  • 给他们一个 ClickOnce 应用程序不是更简单吗?在托管代码中要跳过的安全圈要少得多。看看 Google Chrome 安装程序,了解它的流畅程度。
  • @Jerry Bullard :谢谢,但我认为应用程序在 clickonce 场景中独立于 Web 浏览器运行。也就是说,它无法访问 DOM 或类似的东西。

标签: .net html permissions activex prompt


【解决方案1】:

我假设您的问题是:您能否强制 IE 提示用户安装(以前未知的)证书,以便在页面上运行以其他方式签名且安全的 ActiveX 控件? (如果这不是您的问题,请发表评论,我可以修改。)

简短回答:否。您需要支付 $$$ 以获得可信机构的代码签名证书。 (即 AFAIK,不同于常规 SSL 证书)

长答案:

从安全角度来看,使用未知证书进行签名与未签名类似,因为没有受信任的权威机构告诉客户他可以信任该代码。并且 IE 的默认设置是不允许下载和使用未签名的 ActiveX 控件。

如果您尝试做的事情被允许,那么精明的攻击者可以简单地创建一个证书,对其进行签名,从而使用户更容易运行他们的攻击代码。

当然有一些变通方法,但都涉及客户端采取措施更改其 IE 设置,或(在 Intranet 设置中)让管理员推送对客户端设置的更改。

这里有更多来自 TechNet (http://technet.microsoft.com/en-us/library/cc505863.aspx) 的信息:

Internet Explorer 未配置为 信任证书颁发机构 任何人,包括攻击者,都可以 创建自己的 CA 并发布 证书。因此,互联网 Explorer 不信任所有 CA 默认。相反,Internet Explorer 只信任少数公共 CA。 如果证书是由 不受信任的 CA 并且该网站位于 公共互联网,服务器 管理员应该获得一个 来自受信任 CA 的证书。如果 网站在您的 Intranet 上,一个客户端 管理员应该配置 Internet Explorer 信任发行 加州。

【讨论】:

  • 谢谢贾斯汀,你总结得很好。但是,我发现根本不允许未签名的代码代码(甚至没有提示)有点过分热心。我会更喜欢一个可怕的屏幕,比如不受信任的 HTTPS 屏幕,但可以选择忽略。它不存在,是吗?
  • 不。这种情况并不常见,不足以保证一个特殊的屏幕。此外,由于合法发布者有一个简单的解决方法(去购买真正的证书或让您的系统管理员将您的证书推送给客户!),因此微软几乎没有动力为这种情况构建特殊情况的 UI。
猜你喜欢
  • 2011-11-09
  • 1970-01-01
  • 2011-11-14
  • 2012-04-09
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
相关资源
最近更新 更多