1

私は仕事のセキュリティ デモンストレーションとしてまとめようとしています。なぜ DTD エンティティ処理が危険なのか、そしてなぜそれを防ぎたいのかを示したいと思っています。私はそれをより広い意味で機能させようとしていますが、ここに私が苦労しているコードがあります。

 String str = "<?xml version=\"1.0\"?><!DOCTYPE foo [<!ELEMENT foo ANY> <!ENTITY xxe    SYSTEM \"http://www.google.com\" >]><root>&xxe;</root>";
        String encoded = System.Web.HttpUtility.UrlEncode(str);
        System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
        xDoc.LoadXml(str)

問題は、xml ドキュメントをロードするたびに、DOCTYPE トークンが予期されていないという例外が発生することです。LoadXml を使用して C# で DTD をロードできるようにし、エンティティ展開を使用して DTD を解析するにはどうすればよいですか? 例外なく?

4

0 に答える 0