问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果
为什么单引号能防止sql注入?
为什么单引号能防止sql注入?
首先,单引号不是能防止sql注入,而是过滤掉用户输入部分的单引号能防止sql注入。
在很多语言中,单引号都是做字符串引用的,在sql中也是如此,比如'abc'就是个字符串。但是sql中的单引号还有另一个作用,那就是作为单引号的转义。比如
'abc''d' 这个字符串 实际上表达的是“abc'd”。 此时如果你只输入一个单引号,后面没有该被转义的单引号,数据库就会引发报错。如果攻击者能看到报错信息,就可能为进一步的注入提供更多线索。