【发布时间】:2013-02-28 20:30:28
【问题描述】:
我有以下代码来获取旧网站的一些翻译(在其他一些具有更重要信息的功能中也是如此。)
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 注入预防”一章:ibm.com/developerworks/xml/library/x-xpathinjection/index.html