如何防止.NET中的XPath / XML注入
发布时间:2020-12-16 23:48:49 所属栏目:百科 来源:网络整理
导读:如何在.NET Framework中阻止XPATH注入? 我们以前使用字符串连接来构建XPATH语句,但发现最终用户可以执行一些任意的XPATH.例如: string queryValue = "pages[@url='" + USER_INPUT_VALUE + "']";node = doc.DocumentElement.SelectSingleNode(queryValue);
如何在.NET Framework中阻止XPATH注入?
我们以前使用字符串连接来构建XPATH语句,但发现最终用户可以执行一些任意的XPATH.例如: string queryValue = "pages[@url='" + USER_INPUT_VALUE + "']"; node = doc.DocumentElement.SelectSingleNode(queryValue); 从输入字符串中删除单引号和双引号是否足够? 或者,.NET框架是否支持参数化的XPATH查询?
防止XPath注入的主要思想是预编译要使用的XPath表达式并允许其中的变量(参数),在评估过程中将使用用户输入的值替换.
在.NET中: >使用XPathExpression.Compile()预编译XPath expresion. 您可以阅读有关如何评估包含变量here的XPath表达式的更多信息. 本文包含完整而完整的示例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |