我有以下代碼以獲取舊網站中的一些翻譯(它也像這樣在有更重要的信息,其他一些功能。)防止在.NET XPath注入2.0
Dim myDoc As New XmlDocument
myDoc.Load(Server.MapPath("\GlobalContent\TranslationXML\TranslationXML.xml"))
Dim translationText As XmlNodeList = myDoc.SelectNodes("Transaltions/language[@code='" + hLang.Value + "']")
的Hlang來自用戶輸入,正如你所看到的,這很容易受到Xpath注入攻擊。
我想申請我做SQL注入同樣的事情,那就是使用的參數,但還沒有找到如何做到這一點在2.0
我已經試過這個教程:http://weblogs.asp.net/cazzu/archive/2003/10/07/30888.aspx
但DynamicContext只是一個庫的一部分,我不能使用它。
任何人都可以指導我如何解決這個問題?
您可以使用正則表達式來驗證hLand.Value並丟棄看起來像XPATH的東西;請參閱「XPath注入預防」一章:http://www.ibm.com/developerworks/xml/library/x-xpathinjection/index.html – 2013-03-01 15:07:16