前言:今日在学习sql注入构造payload时,发现对引号的匹配规则不是很清楚,之前也没有专门
学习过,网上也没有特定资料,故特此总结一下
1.1 规则1
大部分编程语言的括号匹配原则为从左至右边,而不是从外至内
比如""""
对于这个例子,从左到右的第一个双引号与第二个双引号匹配,后两个双引号之间匹
配,对于单引号也是相同
1.2 规则2
在已经完成匹配的引号内的引号不参与后续匹配,或许听起来有点抽象,但举个例子就可以了
"'"'
对于这种情况,实际的匹配规则又是如何呢,实际上,执行时编译器或者解释器先遇到了
最左侧的第一个双引号,然后向后寻找匹配,找到了第二个双引号,完成匹配,内部的一个单引
号被解析为字符串内容,故不参与匹配,其实这样写实际的括号匹配等价于""'
'"'
同理