小编use*_*579的帖子

如何在.net反序列化期间防止XML外部实体(XXE)攻击

我们正在使用veracode对代码进行安全性分析,并在下面的代码中显示XXE缺陷,特别是在调用Deserialize()的情况下.我们如何防止序列化程序访问外部实体.我在下面尝试将XMLresolver的XMLresolver设置为null无法正常工作.

    public static T DeserializeObject(string xml, string Namespace)
    {
        System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(T), Namespace);

        MemoryStream stream =
                new MemoryStream(Encoding.Default.GetBytes(xml));
        XmlReaderSettings settings = new XmlReaderSettings();

        // allow entity parsing but do so more safely
        settings.DtdProcessing = DtdProcessing.Ignore;
        settings.XmlResolver = null;

        using (XmlReader reader = XmlReader.Create(stream, settings))
        {
            return serializer.Deserialize(reader) as T;
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我可能会缺少什么或者是否还有其他事情要尝试.

.net c# xml veracode

7
推荐指数
1
解决办法
2863
查看次数

标签 统计

.net ×1

c# ×1

veracode ×1

xml ×1