|
1
7
这个 document 详细描述了“盲xpath注入”的概念。 它提供了xpath注入的具体例子,并讨论了防止这种情况的方法。 在章节中” 防止xpath注入 “据说: “ 防御xpath注入本质上类似于防御sql 注射。应用程序必须清理用户输入。具体来说,单打和双打 不允许使用引号字符。这在应用中也可以做到。 自身,或在第三方产品(如应用防火墙)中。 测试应用程序对XPath注入的敏感性可以很容易地通过 注入单引号或双引号,并检查响应。如果一个错误 发生,则很可能是xpath注入 ."
正如其他人所说,还应该注意使用轴和//缩写。如果
XPath 2.0
正在使用,然后
建议使用一个api,该api预编译xpath表达式,但可能使用动态定义的参数或变量。然后,用户输入将只定义这些参数的内容,而不会被视为对已编译表达式的修改。 |
|
|
2
6
把你的策略颠倒过来。 不要试图筛选出不可接受的字符-策略 “除非我知道它不好,否则假设它是好的” 相反,过滤可接受的字符-策略 “这东西没问题,我想其他东西都不好” . 在安全方面,采用“默认拒绝”策略,而不是 “默认接受” . 例如。。。 …如果你要求某人输入一个搜索词,比如一个人的名字,只输入你希望在名字中找到的字符。 一种方法是限制在a-z范围内,然后确保你的搜索技术能够识别口音(例如i=195’=195’=195’=195’=195’’等等),尽管这属于非欧洲命名。 …如果你要的是一个数字,只限于数字,拒绝其他任何东西。 |
|
|
3
1
我将首先考虑对于您的特定用例来说什么是有效的输入,然后看看限制其他一切的方法。如果您有一个固定的输入值范围,我将限制这些值的输入。否则,如果您的用例要求考虑将来,那么您可能需要检查轴修饰符和路径分隔符,例如
|
|
4
1
这取决于您所说的“xml注入”是什么意思。文档中是否有敏感的部分,用户无法看到?或者您是将其作为可写状态打开并允许用户更新文档的部分内容,而这些内容只应允许更新某些部分?
在基本级别上,要回答您的问题,您需要查找xpath轴操作(例如。
|
|
|
5
0
关闭此漏洞只是一个修补程序。所以现在实行“违约拒绝”政策太危险了。 我决定检查输入中是否有下列符号[,“,',*,=,{,\,,,空格。我想这可以防止最常见的攻击 谢谢大家的回答! |
|
|
6
0
对输入字符串的验证将很有帮助,也许可以使用类似于正则表达式(类似于^\w+)的东西,基于此,不允许使用特殊字符。 |