我有一个自定义url协议处理程序,用于myhandler:// path/to/something形式的url.这是注册到本地安装的客户端应用程序,它处理请求并执行"正确的操作".
但是,当我在outlook(2007)中找到该表单的链接时,outlook会显示一个可怕的警告:
微软办公室发现了潜在的安全问题
这个位置可能不安全......
超链接可能对您的计算机和数据有害.要保护您的计算机,请仅单击来自可信来源的超链接.
你想继续吗?
我知道outlook注册表项可以让我完全禁用这些警告(http://support.microsoft.com/?kbid=925757),但我不想成为机器上的"坏公民" .
有没有办法让我可以"白名单"我的url协议处理程序,以表明我已经完成了应有的安全勤勉,而没有打开对机器上其他URL协议处理程序的访问权限,这些处理程序可能无法加强恶意用户输入?
Outlook不会提示表单的URL http:
https:
mailto:
(也可能是其他URL ).这个列表是硬编码在办公室深处的某个地方还是有某种方法可以将我的特定协议添加到列表中?
看看如何为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}:]