过滤sql注入

判断get传来的是否是数字
is_numeric()
这显然有安全隐患
100 (有效)
100.1 (不应该有小数位)
+0123.45e6 (科学计数法 —— 不好)
0xff33669f (十六进制 —— 危险!危险!)
。。。
所以想到应用正则去匹配数字
$pid = $_GET['id'];
if(!ereg('/^\d+?&/',$pid) && strlen($pid) > 50){
//返回错误
}else{
}
亦或者
if(strlen($pid) > 5){
$new_pid = substr($pid,0,5);
}
进入数据库的时候 mysql_real_escape_string($pid)

你可能感兴趣的:(过滤sql注入)