新疆网站建设 乌鲁木齐网页设计
 
欢迎您!
 您现在位置:华维时代科技技术中心网络编程- 浏览正文 网站快速导航: 
PHP整体网页如何防注入

 

今天写代码的时候猛然想到是不是能够通过一个文件来处理整个网站中所有可能出现注入的地方进行防范呢?这样就能够不用在每个程序里对每个变量进行过滤,节省了时间和代码。

我们主要是从两点出发,因为我们的获取的变量一般都是通过GET或者POST方式提交过来的,那么我们只要对GET和POST过来的变量进行过滤,那么就能够达到防止注入的效果。而且我们的PHP真是非常好,已经内置了$_GET和$_POST两个数组来存储所有变量,我们要做的工作就是过滤每个变量就可以了。

下面看具体的防注入代码:

/* Author: heiyeluren */
/* 过滤所有GET过来变量 */
foreach ($_GET as $get_key=>$get_var)
{
    if (is_numeric($get_var))
 if (is_numeric($get_var)) {
  $get[strtolower($get_key)] = get_int($get_var);
 } else {
  $get[strtolower($get_key)] = get_str($get_var);
 }
}

/* 过滤所有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;
}

那么我们把以上代码放到一个公共的文件里,比如security.inc.php里面,每个文件里都include一下这个文件,那么就能够给任何一个程序进行提交的所有变量进行过滤了,就达到了我们一劳永逸的防注入效果。

关于我们 | 人才招聘 | 常见问题 | 在线留言 | 技术中心 | 网站案例 | 联系方式
 
版权所有 ©2005-2010乌鲁木齐华维时代科技信息有限公司,严禁抄袭复制
公司地址:新疆乌鲁木齐市北园春克拉玛依西路汇嘉园 新ICP备05004410号
咨询电话:0991-8787177 8787997 E-mail:info@xjhuawei.com
本站关键字:新疆网站建设 新疆网页设计 新疆网络公司 乌鲁木齐建网站 乌鲁木齐网站建设
公司营业执照验证