var xDoc = XDocument.Load(fileName);
我在函数中使用上述代码来加载XML文件。功能明智的工作正常,但它显示Veracode检查后Veracode缺陷。如何配置XML解析器以禁用C中的外部实体解析#
说明
产品流程,可以包含XML实体解析为外界控制的预期范围的 文档的URL,致使产品中嵌入不正确的文件到其输出的XML文档。默认情况下, XML实体解析器将尝试解析和检索外部引用。如果攻击者控制的XML可以被提交到这些功能之一,则攻击者可以访问关于内部网络,本地文件系统或其他敏感数据的信息。这被称为XML外部实体(XXE)攻击。
建议
配置XML解析器来禁止外部实体解析。
我需要做些什么来解决它。
我在windows项目中使用此代码。它有什么区别? –
GetEntity()方法里面有什么? – gene
@gene:通常你应该返回一个包含DTD或其他外部源的流。例如,如果您的文档类型是这样的<!DOCTYPE myxml SYSTEM“MyDTD.dtd”>',那么'GetEntity'被调用'absoluteUri ==“MyDTD.dtd”',并且您应该返回一个流其内容。您可以简单地返回一个空的DTD,这样DTD中定义的实体将保持未解析状态。 – taffer