URL协议处理程序安全警告

14

我有一个用于处理myhandler://path/to/something形式的url的自定义url协议处理程序。该程序已注册到本地安装的客户端应用程序,以处理请求并执行“正确的操作”。

但是,在outlook(2007)中存在这种形式的链接时,outlook会显示一个大而可怕的警告,上面写着:

Microsoft office已识别出可能的安全问题

此位置可能不安全 ...

超链接可能对您的计算机和数据造成损害。为了保护您的计算机,请仅从受信任的来源点击超链接。

是否要继续?

我知道outlook注册表中的键可以使我完全禁用这些警告 (http://support.microsoft.com/?kbid=925757),但我不想在该计算机上表现为不良公民。

有没有办法“白名单”我的url协议处理程序,以表明我已经进行了充分的安全尝试,而不开放访问机器上的其他可能未受到恶意用户输入保护的url协议处理程序?

Outlook不会提示形如http:https:mailto:(也许还有其他协议)的URL。这个列表是否硬编码在office的深处,或者有没有办法将我的特定协议添加到该列表中?

4个回答

14

查看如何在Outlook 2013中执行此操作,我使用了@bmadtiger的答案来找到信任单个协议的注册表键路径。 对于Outlook 2013,默认情况下不存在Policies\Microsoft\Office\15.0\Common键,因此您需要自己添加。

因此,要信任单个协议,请添加以下键:

HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\{version}\Common\Security\Trusted Protocols\All Applications\{protocol}:

其中{version}是Office的内部版本,{protocol}是您想要信任的协议。

  • Office 2010的{version}14.0
  • Office 2013的{version}15.0
  • Office 2015的{version}16.0

例如,对于Office 2013和协议ttstudio

KEY_CURRENT_USER\Software\Policies\Microsoft\Office\15.0\Common\Security\Trusted Protocols\All Applications\ttstudio:

如果您需要一个注册表文件来完成此操作,只需将以下内容粘贴到一个.reg文件中,必要时更改{version}{protocol},然后执行该注册表文件:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\{version}\Common\Security\Trusted Protocols\All Applications\{protocol}:]

非常抱歉打扰了,但是如果注册表项位于\Software\Policies\下,难道不是总有一种组策略可以设置这些内容吗? - Tom
2
非常有帮助,谢谢!请注意,没有Office 2015,应该是Office 2016。 - Andre

4
我最近遇到了同样的问题,并且已经解决了。你需要注册协议处理程序的注册表键在这篇kb文章中有描述。
请注意,它提到了需要安装hotfix,但对于我来说,在没有安装任何东西的情况下也可以工作。也许热补丁已经通过Windows更新服务分发了。

关于是否安装该热修复程序,我认为它已包含在Office 2007 SP3中。有关热修复程序的文章指出,SP1或SP2是先决条件。在我的情况下,即使没有安装热修复程序也可以正常工作。 - kevinpo

2
也许一开始并没有,但你引用的链接(http://support.microsoft.com/?kbid=925757)现在有了你需要的答案 - 在标题"如何按协议启用或禁用超链接警告"下方,其中包含类似于Zarat答案的信息,但它具体适用于Office 2007和2010,并且不需要修补程序。
此外,由于注册表键表明这适用于所有Office应用程序,而不仅仅是Outlook。
在Excel 2010中第一次尝试就成功了。

1

既然你已经解决了在浏览器中打开URL(但不是Outlook)的问题,那么我的解决建议是:

给用户期望的东西 - 一个普通的http URL。然后让你的服务器重定向到具有特殊处理程序的特殊URL。或者给他们一个文件URL,使文件的内容成为JavaScript重定向到真正的位置。

我相信苹果在其关于iTunes处理链接的参考文件中也做了类似的事情,例如http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=80028216

此外,这种技术还能让你在浏览器中显示一个闪屏页面,提供有关如果本地计算机上尚未安装/配置软件时该怎么做的说明。


我喜欢这个想法,但我的一个要求是能够在没有网络连接的情况下运行(离线场景)。 - StarBright
回复:离线:使用 file:// 处理程序加载包含 JavaScript 的本地 HTML 文件,以重定向到您的自定义处理程序。 - Larry K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接