Web安全漏洞之SQL注入

SQL注入是将sql语句输入到用户输入的参数中,之后再将这些参数传递到后 台的SQL服务器加以解析并执行。
原理:通过用户可控参数中注入SQL语法,破环原有SQL结构,达到编写程序意料之外的结果。
危害:1.获取信息
2.拖库
3.修改数据库
4.拿到webshell
5.服务器系统权限
过程:表示层访问具体网址http://www.xxx.com
逻辑层加载、编译并执行脚本文件
存储层执行SQL
产生原因:1.对用户的输入数据,没有进行过滤,被带到数据库中执行,造成了sql注入。
2.编写程序时直接使用字符串拼接的方式构造sql语句。
防御:接受时严格过滤用户输入的参数
编写时不用动态拼接要参数话或者使用数据存储过程存储。
报错时对错误信息进行包装。
编写时用addslashes
magic_quotes_gpc开启会将引号、空格、\、/转换为\。但是注意编码,如果编码为gbk参数输入%df会和\结合反而失效。
可使用正则判断
注意二次注入
分类:
1.数据类型:整数型,字符型
2.注入语法:联合注入,报错注入,布尔型注入,延时注入,多语句查询注入。

你可能感兴趣的:(Web安全之SQL注入)