PHP正規(正則)表達式比對防止SQL注入
資料來源: http://www.51itstudy.com/it/article/2469.html
https://www.cnblogs.com/yydcdut/p/3496855.html
http://www.wuliaoy.com/pro/47.html
https://www.ctolib.com/topics-88220.html
01.
02.
Error number: [$errno],error on line $errline in $errfile
"; die(); } set_error_handler("customError",E_ERROR); $getfilter="'|(and|or)\\b.+?(>|||
操作IP: ".$_SERVER["REMOTE_ADDR"]."
操作时间: ".strftime("%Y-%m-%d %H:%M:%S")."
操作页面:".$_SERVER["PHP_SELF"]."
提交方式: ".$_SERVER["REQUEST_METHOD"]."
提交参数: ".$StrFiltKey."
提交数据: ".$StrFiltValue); print "result notice:Illegal operation!"; exit(); } } foreach($_GET as $key=>$value) { StopAttack($key,$value,$getfilter); } foreach($_POST as $key=>$value) { StopAttack($key,$value,$postfilter); } foreach($_COOKIE as $key=>$value) { StopAttack($key,$value,$cookiefilter); } function slog($logs) { $toppath="log.htm"; $Ts=fopen($toppath,"a+"); fputs($Ts,$logs."\r\n"); fclose($Ts); } ?>
03.
alert('请勿非法操作!');
window.history.back(-1);
");
} else {
return $str;
}
}
$loginname = strCheck($_POST["loginname"]);
?>
04.
$v )
{
$array [$k] = sec ( $v );
}
} else if (is_string ( $array ))
{
//使用addslashes函数来处理
$array = addslashes ( $array );
}
else if (is_numeric ( $array ))
{
$array = intval ( $array );
}
return $array;
}
//整型过滤函数
function num_check($id)
{
if (! $id)
{
die ( '参数不能为空!' );
} //是否为空的判断
else if (inject_check ( $id ))
{
die ( '非法参数' );
} //注入判断
else if (! is_numetic ( $id ))
{
die ( '非法参数' );
}
//数字判断
$id = intval ( $id );
//整型化
return $id;
}
//字符过滤函数
function str_check($str)
{
if (inject_check ( $str ))
{
die ( '非法参数' );
}
//注入判断
$str = htmlspecialchars ( $str );
//转换html
return $str;
}
function search_check($str)
{
$str = str_replace ( "_", "\_", $str );
//把"_"过滤掉
$str = str_replace ( "%", "\%", $str );
//把"%"过滤掉
$str = htmlspecialchars ( $str );
//转换html
return $str;
}
//表单过滤函数
function post_check($str, $min, $max)
{
if (isset ( $min ) && strlen ( $str ) < $min) {
die ( '最少$min字节' );
} else if (isset ( $max ) && strlen ( $str ) > $max) {
die ( '最多$max字节' );
}
return stripslashes_array ( $str );
}
//防注入函数
function inject_check($sql_str)
{
return eregi ( 'select|inert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|UNION|into|load_file|outfile', $sql_str );
// 进行过滤,防注入
}
function stripslashes_array(&$array)
{
if (is_array ( $array ))
{
foreach ( $array as $k => $v )
{
$array [$k] = stripslashes_array ( $v );
}
}
else if (is_string ( $array ))
{
$array = stripslashes ( $array );
}
return $array;
}
?>