及其噶鼓的id——防sql注入
最近有这样一个接口 就收的id 是 '1_2,2_3,3_4,4_6,'这种的
<?php
$_POST['id'] = "1_2,2_3,3_4,4_); SELECT SLEEP(1);";
// 格式化数字数组 格式为:'1_2,2_3,3_4'
if($_POST['id']){
//过滤‘_’
$idArray = explode('_',$_POST['id']);
if($idArray){
foreach($idArray as &$id){
}
$_POST['id'] = implode(',', $idArray);
}else{
$_POST['id'] = '';
}
//过滤除数字外的所有字符
if($_POST['id']){
$idArray = explode(',',$_POST['id']);
foreach($idArray as &$id){
$id = intval($id);
}
$_POST['id'] = implode('_', $idArray);
}else{
$_POST['id'] = '';
}
//把得到的字符串打成数组 格式为' *_* '
preg_match_all('/\d_\d/',$_POST['id'],$_POST['id']);
//二维数组转一维数组
$_POST['id'] = array_reduce($_POST['id'], 'array_merge', array());
//数组转成字符串 格式为 '1_2,2_3,3_4' 完成过滤。
$_POST['id']=implode(',', $_POST['id']);
print_r($_POST['id']);
die();
希望大家遇到的id 都是 id=1 ~~~~~~~~~~~~~~