.NET:XmlReaderSettings中ProhibitDtd属性的目的是什么?为什么DTD是安全问题?

时间:2010-03-31 20:20:09

标签: .net dtd xmlreader

The documentation说:

  

设置为true时,遇到任何DTD内容时,XmlReader会抛出XmlException。 如果您担心拒绝服务问题或者您正在处理不受信任的来源,请不要启用DTD处理。

     

如果启用了DTD处理,则可以使用XmlSecureResolver限制XmlReader可以访问的资源。您还可以设计应用程序,以便XML处理受内存和时间限制。例如,在ASP.NET应用程序中配置超时限制。

有人可以解释一下这个问题吗?

为什么读者应用程序要禁止检索DTD?如果是阅读申请,拒绝服务问题在哪里?提到的“信任”问题是什么?

由于

1 个答案:

答案 0 :(得分:3)

查看MSDN Magazine,它解释了与DTD相关的攻击。总之,可以创建一个相对较短的XML文件,当由于DTD而扩展时,会消耗大量的MB RAM,使处理机器处于饥饿状态。