我有一些代码可以检索一些 xml,然后尝试验证 xml 签名。根据this post,SignedXml类型的验证方法需要完全信任才能进行xml签名验证。由于我的代码需要在沙箱中运行,我没有完全信任,因此引发了安全异常。
如果是这种情况,那么是否有其他方法来验证 xml 签名(最好不需要购买第 3 方软件)?
我有一些代码可以检索一些 xml,然后尝试验证 xml 签名。根据this post,SignedXml类型的验证方法需要完全信任才能进行xml签名验证。由于我的代码需要在沙箱中运行,我没有完全信任,因此引发了安全异常。
如果是这种情况,那么是否有其他方法来验证 xml 签名(最好不需要购买第 3 方软件)?
似乎这是不可能的。我的解决方法是避免依赖签名的 xml 并添加哈希。这远没有那么安全,但我可以在不使用任何完全信任代码的情况下做到最好。
我认为如果您不需要使用XmlResolver
.
MSDN 文档说“在 .NET Framework的1.1 版中,调用者必须完全受信任才能指定 XmlResolver。”。我正在使用 .NET 4.5 在中等信任环境中运行,并且可以成功设置XmlResolver
. 因为我知道我永远不需要解析我的 XML 文档中的任何外部引用(在这里解释这意味着什么),所以我可以SignedXml.Resolver
将null
. 就我而言,这解决了问题并允许SignedXml
在共享托管环境(GoDaddy)中使用。
请注意,如果您想使用SecureXmlResolver
,您将需要FullTrust
.