php防注入安全代码,PHP 防注入安全实现程序代码

/*

函数名称:inject_check()

函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全

参  数:$sql_str: 提交的变量

返 回 值:返回检测结果,ture or false

函数作者:heiyeluren

*/

function inject_check($sql_str) {

return eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);    // 进行过滤

}

/*

函数名称:verify_id()

函数作用:校验提交的ID类值是否合法

参  数:$id: 提交的ID值

返 回 值:返回处理后的ID

函数作者:heiyeluren

*/

function verify_id($id=null) {

if (!$id) { exit('没有提交参数!'); }    // 是否为空判断

elseif (inject_check($id)) { exit('提交的参数非法!'); }    // 注射判断

elseif (!is_numeric($id)) { exit('提交的参数非法!'); }    // 数字判断

$id = intval($id);    // 整型化

return  $id;

}

/*

函数名称:str_check()

函数作用:对提交的字符串进行过滤

参  数:$var: 要处理的字符串

返 回 值:返回过滤后的字符串

函数作者:heiyeluren

*/

function str_check( $str ) {

if (!get_magic_quotes_gpc()) {    // 判断magic_quotes_gpc是否打开

$str = addslashes($str);    // 进行过滤

}

$str = str_replace("_", "_", $str);    // 把 '_'过滤掉

$str = str_replace("%", "%", $str);    // 把 '%'过滤掉

return $str;

}

/*

函数名称:post_check()

函数作用:对提交的编辑内容进行处理

参  数:$post: 要提交的内容

返 回 值:$post: 返回过滤后的内容

函数作者:heiyeluren

*/

function post_check($post) {

if (!get_magic_quotes_gpc()) {    // 判断magic_quotes_gpc是否为打开

$post = addslashes($post);    // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤

}

$post = str_replace("_", "_", $post);    // 把 '_'过滤掉

$post = str_replace("%", "%", $post);    // 把 '%'过滤掉

$post = nl2br($post);    // 回车转换

$post = htmlspecialchars($post);    // html标记转换

return $post;

}

foreach ($_POST as $post_key=>$post_var)

{

if (is_numeric($post_var)) {

$post[strtolower($post_key)] = get_int($post_var);

} else {

$post[strtolower($post_key)] = get_str($post_var);

}

}

/* 过滤函数 */

//整型过滤函数

function get_int($number)

{

return intval($number);

}

//字符串型过滤函数

function get_str($string)

{

if (!get_magic_quotes_gpc()) {

return addslashes($string);

}

return $string;

}

?>

在有些cms中我会看到

foreach($HTTP_POST_VARS as $key=>$value){

$ArrPostAndGet[]=$value;

}

foreach($HTTP_GET_VARS as $key=>$value){

$ArrPostAndGet[]=$value;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值