sql注入学习笔记(基础)
1.什么是sql注入
sql注入是将sql代码添加到输入参数.传递到服务器解析并执行的一种攻击手段 产生原因: 开发人员无法保证所有代码都进行过滤 攻击者发送给服务器的经过构造的可执行的sql语句 数据库未做相对应的安全配置2.寻找sql注入漏洞
逻辑推理法: 1.识别web应用中的所有输入点(get/post/http头信息)get: a.php?id=-1 or 1 = 12.了解哪些类型特殊字符的请求会触发异常
get: ' " post: '
3.进行sql注入攻击
1.数字注入a.php?id=-1 or 1 = 12.字符串注入
select * from user where name='xxx' and pwd='123456'; 填用户名时填入 xxx'# select * from user where name='xxx'#' and pwd='123456'; 填用户名时填入 xxx'-- select * from user where name='xxx'-- ' and pwd='123456';
4.预防sql注入
1.严格检查输入变量的强校验 判断id 使用正则限制 2.对输入的特殊字符进行转义name="mysqli_real_escape_string($db,$username)" and pwd=1111;3.mysqli预编译机制
$sql = select * from user where name=? and pwd= ? ; bind_param($sql,'ss',$name,$pwd);4.pdo预处理 http://www.wangmingchang.com/2728.html
本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。