防止sql注入的方法

2021-01-18  本文已影响0人  随便咯_30ac
/**
 * 防止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;
}

上一篇下一篇

猜你喜欢

热点阅读