【发布时间】:2018-07-16 19:59:04
【问题描述】:
这不是安全问题吗?即使 xml 已针对架构进行了验证,攻击者仍然可以修改本地 .xsd 文件并将其更改为允许他们想要的任何内容。 .xsd 文件应该放在哪里?如果将此类文件存储在安全位置,您将如何安全地访问它,以便您可以将其用于 .NET 中的 xml 验证
【问题讨论】:
标签: c# .net xml security xsd-validation
这不是安全问题吗?即使 xml 已针对架构进行了验证,攻击者仍然可以修改本地 .xsd 文件并将其更改为允许他们想要的任何内容。 .xsd 文件应该放在哪里?如果将此类文件存储在安全位置,您将如何安全地访问它,以便您可以将其用于 .NET 中的 xml 验证
【问题讨论】:
标签: c# .net xml security xsd-validation
你的方案是:
此应用安装在哪里?是在服务器上吗?如果是这样,那么如果坏人可以更改您服务器上的任意文件,那么这是您最不关心的问题。
如果它在客户端 PC 上,则将其与您的应用程序一起安装。非管理员用户无法更改“程序文件”下的内容。如果此人是您安装的机器上的管理员,那么您无能为力。
如果它是手机上的应用程序,那么我相信我的 PC cmets 仍然存在。
【讨论】:
您无法阻止在完成验证的机器上具有管理员权限的人伪造架构验证,但您可以而且应该采取的一个步骤是防止 XML 文件的创建者伪造它。
如果您因为不相信文件有效而进行验证,则不要使用xsi:schemaLocation 机制来定位架构。使用从接收应用程序提供架构位置的验证 API,而不是从实例文档中获取它。
如果您要非常小心,请确保通过将文档发送到安全服务器进行验证来完成验证,并让您的安全服务器返回一份带有数字签名确认其有效性的文档副本。
【讨论】: