【问题标题】:Can I verify an XML Signature from within a sandbox?我可以在沙箱中验证 XML 签名吗?
【发布时间】:2023-03-28 04:33:02
【问题描述】:

我有一些代码可以检索一些 xml,然后尝试验证 xml 签名。 根据this post的说法,SignedXml类型的验证方式需要完全信任才能进行xml签名验证。由于我的代码需要在沙箱中运行,我没有完全信任,因此引发了安全异常。

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

【问题讨论】:

    标签: c# xml sandbox xml-signature


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果您不需要使用XmlResolver,我认为有一种方法可以做到这一点。

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

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

      【讨论】:

        猜你喜欢
        • 2011-10-28
        • 1970-01-01
        • 2014-05-10
        • 2015-05-07
        • 2021-05-07
        • 1970-01-01
        • 1970-01-01
        • 2012-03-27
        • 2020-11-28
        相关资源
        最近更新 更多