以前对页面的搜索条件进行测试时,没有太在意%,一直把它归在特殊字符(&_'=,/)里面,直到看到SQL注入的文章后才知道这个问题有多严重,在做软件的时候应用SQL注入的方法帮助我们解决这些不必要的麻烦!不要给别人留任何的机会!
下面先对 SQL注入 简单的了解下
比如程序里是a='参数',你传入个:你好' and b='测试,那么结果就是 a='你好' and b='测试'
最近在测一个CC的项目,就实践了下,如下截图配送人员是模糊查询,客户姓名、电话号码是精确查询
物流信息.png
在电话号码处输入%可以查到所有数据,哈哈,赶紧提bug
电话号码查询.png
如下截图所有文本框字段都为精确查询,客户姓名处输入%,列表页没有数据
售后信息.png
总结:
查询的字段本身不含%的,输入%搜索时没有数据,如果字段本身含%的就允许查询,代码里对%进行转义,只能当搜索内容处理,不能当sql 执行
(如果被当做SQL关键字执行了,那就是程序本身没有做安全保护处理)
以下是通过SQL进行转义,还有一些是代码里通过传参形式,这时可能是直接调用底层方法的,假如用/做转义符, 那么果搜 \ + "其他字符" 就会报错,所以还是得从底端进行控制
SQL转义字符和通配符.jpg
网友评论