长天 发表于 2008 年 1 月 19 日 16:33:57

无聊,发个php函数

/**
* 过滤get/post时非法变量或者变量值非法用的
*
* @param$arr          :数组,构造一个数组,其中key为页面可以接受的参量,value为对应该key不指定过滤的符号
* @param$type: 表示执行页面只能接受的数据类型,分为$_GET/ $_POST
* @author陈枫烨 chenfengye@gmail.com
* @todo   增加些必要的待过滤符号
* @since2008-1-19 16:22
* @version 0.000322
* @example 在要调用传入数据变量前设置如下即可(建议在每个页面开始出就开始过滤):如:
*                 //构造一个数组,其中key为页面可以接受的参量,value为不指定过滤符号
                $arr=array('a1'=>'/','a2'=>'','b3'=>'','b4'=>'');
                checkGPvar($arr,$_GET);
*/
function checkGPvar($arr,$type){
        foreach ($type as $k=>$v){
                //检测是否用户构造了非法参量
                if (!array_key_exists($k,$arr))
                die ("variable error!");

                //过滤非法字符
                if ($v!=''){
                        $text=array('%','\'','"','<','>','&','.','=','+','*','@','(',')','$','~','`');
                        $temp=explode(',',$v);
                        foreach ($temp as $t){
                                if (array_key_exists($t,$text))
                                $text[$t]='11111^$%##$%#%@#^*111*$%^$@#$@!!~';
                                $k=str_replace($text,'',$v);
                        }
                }

        }
}

[ 本帖最后由 长天 于 2008-1-19 16:37 编辑 ]

很明显 发表于 2008 年 1 月 19 日 16:35:25

很强大
很暴力:victory:

iewnil 发表于 2008 年 1 月 19 日 16:42:12

够黄,够爆力

风之翼灵 发表于 2008 年 1 月 19 日 16:48:47

哈哈,师傅这个东西对PHP的安全很有重要好,果然够黄,够爆力

jpfree 发表于 2008 年 1 月 19 日 16:58:13

不会用

shikey 发表于 2008 年 1 月 19 日 19:53:44

:L 看不懂~~
页: [1]
查看完整版本: 无聊,发个php函数