2010-03-31 21 views
3

The documentation dit:.NET: Quel est le but de la propriété ProhibitDtd à XmlReaderSettings? Pourquoi la DTD est-elle un problème de sécurité?

Lorsque la valeur true, le XmlReader jette un XmlException quand tout contenu DTD est rencontré. ne permettent pas le traitement DTD si vous êtes préoccupé de dénis de service ou si vous avez affaire à des sources non fiables.

Si le traitement DTD est activé, vous pouvez utiliser XmlSecureResolver pour restreindre les ressources auxquelles XmlReader peut accéder. Vous pouvez également concevoir votre application de sorte que le traitement XML soit limité en termes de mémoire et de temps. Par exemple, configurez des limites de délai d'attente dans votre application ASP.NET.

Quelqu'un peut-il expliquer la question s'il vous plaît?

Pourquoi une application de lecteur voudrait interdire la récupération d'un DTD? Où est le problème du déni de service, s'il s'agit d'une application de lecture? Quel est le problème de "confiance" mentionné?

Merci

Répondre

3

Jetez un oeil à MSDN Magazine ce qui explique l'attaque liée à DTD. En résumé, on peut créer un fichier XML relativement court qui, lorsqu'il est étendu en raison de la DTD, consomme beaucoup de Mo de RAM, mourir de faim la machine de traitement.