我可以在沙箱中验证XML签名吗?

时间:2011-10-20 22:33:31

标签: c# xml sandbox xml-signature

我有一些代码可以检索一些xml,然后尝试验证xml签名。 根据{{​​3}},SignedXml类型的验证方法需要完全信任才能执行xml签名验证。由于我的代码需要在沙箱中运行,因此我没有完全信任,因此会抛出安全异常。

如果是这种情况,那么还有其他方法可以验证xml签名(最好不需要购买第三方软件)吗?

2 个答案:

答案 0 :(得分:1)

似乎这是不可能的。我的解决方法是避免依赖签名的xml并添加哈希。这远不那么安全,但是如果不使用任何完全信任的代码,我就能做到最好。

答案 1 :(得分:0)

如果您不需要使用XmlResolver,我认为有一种方法可以执行此操作。

MSDN docs说“在.NET Framework 1.1版中,调用者必须完全信任才能指定XmlResolver。”我在.NET 4.5的中等信任环境中运行,我可以成功设置XmlResolver。因为我知道我永远不需要解析我的XML文档中的任何外部引用(解释这意味着什么here)我可以将SignedXml.Resolver设置为null。在我的情况下,这解决了问题并允许在共享托管环境(GoDaddy)中使用SignedXml

请注意,如果您想使用SecureXmlResolver 需要FullTrust