/**
* 防止sql注入
* @param string $check_data 要检测的字符
* @return string $return 过滤后的字符
*/
function FilteringSQL($check_data)
{
if (empty($check_data)) {
return $check_data;
}
$search_pattern = "or\s|;|select|drop|delete|update";
// 删除SQL注入指令
$filter_ret = preg_replace("/($search_pattern).*$/i", '', $check_data);
// 整数类型或字符串类型的判断
$ret = preg_replace('/\'|--/', '', $filter_ret);
if ($filter_ret !== $ret && is_numeric($ret)){
// 数字的情况下正常
$return = $ret;
}else{
// 字符串的场合
if($ret === $filter_ret){
// 没有SQL注入的普通模式
$return = $filter_ret;
}else{
//integer + 字符串的场合
//SQL注入的值返回零
$return = 0;
}
}
return $return;
}
网友评论