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