码迷,mamicode.com
首页 > 数据库 > 详细

php代码审计--sql注入

时间:2016-07-19 13:11:06      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

sql注入是web安全中最常见,也是平常中危害最大的漏洞。

最近在学习代码审计,拿自己审核的一段代码做个笔记。

 

1、sql语句拼接可能引起sql注入

很多偷懒的程序员对于没有过滤的参数,直接将其拼接到sql语句中,可能导致命令执行。

如:$sql = "select count(*) as qty from t_user where f_uid=‘"+$userAccount+"‘ and f_password=‘"+$password+"‘";

造成sql注入时的sql语句就变成了select count(*) as qty from t_user where f_uid=‘admin‘--‘and f_password=***;

2、强制转换也不能全部阻挡住sql注入

有一部分程序员会有一定的安全意识,对变量会进行强制转换来进行过滤。

如:$sql = sprintf("select count(*) as qty from t_user where f_uid=‘%d‘ and f_password=‘%s‘",$userAccount,$password);

但是,这种过滤是不能挡住sql注入的,主要是因为userAccount会被强制转换成整型也就是%d,但是password所传过来的参数并不会变更,

因为password所在的位置为字符串。

 

总结:预编译是所有sql注入的终结防御,荆轲刺秦王。

php代码审计--sql注入

标签:

原文地址:http://www.cnblogs.com/ermei/p/5684087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!