У меня есть следующий код, чтобы получить некоторые переводы для старого сайта (также, как это его в некоторых других функциональных возможностей, которые имеют более важную информацию.)Предотвращение Xpath Injection на .net 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 injection Attacks.
Я пытаюсь применить то же самое я делаю с инъекцией SQL, который является использование параметров, но не нашел, как это сделать в 2.0
Я попробовал этот учебник: http://weblogs.asp.net/cazzu/archive/2003/10/07/30888.aspx
Но DynamicContext является частью библиотеки, и я не могу ее использовать.
Может ли кто-нибудь вести меня о том, как я могу это исправить?
Вы можете использовать Regex для проверки hLand.Value и отказаться от того, что выглядит как XPATH; см. главу «Предотвращение инъекций XPath» здесь: http://www.ibm.com/developerworks/xml/library/x-xpathinjection/index.html –