【发布时间】:2021-02-25 07:05:59
【问题描述】:
我正在尝试使用antlr4(+python3)来检测sql注入,说现在我得到了后端SQL命令“SELECT * FROM AAA WHERE BBB = ''”,用户输入“CCC”。
现在解析树看起来像这样:
我的问题是,我可以将“CCC”(用户输入)直接匹配到子树“谓词”(见上图),即在“谓词”处进入解析树吗?
我有几个想法:
- 重写语法文件
- 使用访问者并跳过肯定出现在“谓词”之前的节点
这些想法很复杂,那么我应该在现有文献中寻找什么?或任何其他建议?
【问题讨论】:
-
什么是“预测”?这是从哪里来的?
-
"predict" 是笔误,我改成了"predicate",就是图中所示AST的一个节点。抱歉打错了。
标签: python python-3.x sql-injection antlr4 abstract-syntax-tree