.net – 如何避免XML注入

我有输入字段值用于形成XPath查询.
我应该检查输入字符串中的哪些符号以尽量减少 XML注入的可能性?
document详细描述了“盲XPath注入”的概念.

它提供了XPath注入的具体示例,并讨论了防止这种情况的方法.

在“防御XPath注入”一节中,它被说成:

“防御XPath注入基本上类似于防御SQL
注射.应用程序必须清理用户输入.具体来说,单和双
引号字符应该被禁止.这可以在应用程序中完成
本身,或在第三方产品(例如应用程序防火墙).
测试应用程序对XPath注入的敏感性可以很容易地执行
注入单引号或双引号,并检查响应.如果有错误
发生了,那么很可能XPath注入是可能的.“

正如其他人所说,人们也应该注意使用轴和//缩写.如果正在使用XPath 2.0,则不应允许doc()函数,因为它允许访问具有已知URI(或文件名)的任何文档.

建议使用预编译XPath表达式的API,但保留它可以使用动态定义的参数或变量.然后,用户输入将仅定义这些参数的内容,并且永远不会将其视为已编译表达式的修改.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇