修复“xml 外部实体引用的不当限制”的最佳方法是什么?

pit*_*kiy 2 .net c# xml veracode

我们最近运行了 VeraCode,它指出了以下方法:

    public XmlElement RunProcedureXmlElement(string Procedure, List<SqlParameter> Parameters)
    {
        DataSet ds = RunProcedureDataSet(Procedure, Parameters);
        XmlDocument xmlDoc = new XmlDocument();
        StringBuilder strXML = new StringBuilder();

        foreach (DataTable dt in ds.Tables)
        {
            foreach (DataRow dr in dt.Rows)
            {
                strXML.Append(dr[0]); // Do I still need .ToString()???
            }
        }
        if (strXML.Length == 0) strXML.Append("<root total=\"0\"></root>");

        try
        {
            xmlDoc.LoadXml(strXML.ToString());
        }
        catch (XmlException e)
        {

        }

        return xmlDoc.DocumentElement;
    }
Run Code Online (Sandbox Code Playgroud)

什么是修复该方法的好解决方案,以便 VeraCode 停止抱怨?

谢谢

小智 5

我在 Veracode 上也遇到了同样的问题,以下解决了它。
声明后XmlReader

XmlDocument xmlDoc = new XmlDocument();
Run Code Online (Sandbox Code Playgroud)

添加行:

xmlDoc.XmlResolver = null;
Run Code Online (Sandbox Code Playgroud)