.NET:XmlReaderSettings中ProhibitDtd属性的用途是什么?为什么DTD是一个安全问题?

.NET:XmlReaderSettings中ProhibitDtd属性的用途是什么?为什么DTD是一个安全问题?,.net,dtd,xmlreader,.net,Dtd,Xmlreader,说: 当设置为true时,当遇到任何DTD内容时,XmlReader将抛出XmlException如果您担心拒绝服务问题或处理不受信任的源,请不要启用DTD处理。 如果启用了DTD处理,则可以使用XmlSecureResolver限制XmlReader可以访问的资源。您还可以设计应用程序,使XML处理受到内存和时间的限制。例如,在ASP.NET应用程序中配置超时限制 有人能解释一下这个问题吗 为什么读卡器应用程序要禁止检索DTD?如果是阅读应用程序,拒绝服务问题在哪里?提到的“信任”问题是什么

说:

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

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

有人能解释一下这个问题吗

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

谢谢

请看一下与DTD相关的攻击的原因。总之,可以创建一个相对较短的XML文件,当由于DTD进行扩展时,该文件会消耗大量MB的RAM,从而使处理器无法工作