六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 1280|回复: 1

php字符串安全过滤-it论坛

[复制链接]
 楼主| 发表于 2013-12-20 01:17:17 | 显示全部楼层 |阅读模式
set_magic_quotes_runtime 和 magic_quotes_gpcset_magic_quotes_runtime() 可以让程序员在代码中动态开启或关闭 magic_quotes_runtime,set_magic_quotes_runtime(1) 表示开启,set_magic_quotes_runtime(0) 则表示关闭。当set_magic_quotes_runtime(1)时,从数据库或通过fread之类的函数读取的文本,将自动对' "和\自动加上反斜杠\进行转义,防止溢出。这在对数据库的数据进行转移的时候非常有用。但在一般情况下,应当将其关闭,否则从数据库读取出来的数据单引 号、双引号和反斜杠都会被加上\,导致显示不正常。it论坛 像Discuz,PHPWind都在公共文件的头部加上一句 set_magic_quotes_runtime(0); 强制关闭 magic_quotes_runtime 。
magic_quotes_gpc 和 magic_quotes_runtime 的区别在于,magic_quotes_gpc 是对通过GET、POST、COOKIE传递的数据进行转义,一般在数据入库前要先进行转义,magic_quotes_gpc不能在代码中动态开启或关 闭,需要到php.ini将magic_quotes_gpc设置为on或off,代码中可以用get_magic_quotes_gpc获取 magic_quotes_gpc的状态。当magic_quotes_gpc为off时,需要手工对数据进行addslashes,代码如下:
PHP代码
  • if (!get_magic_quotes_gpc()) {
  •         add_slashes($_GET);
  •         add_slashes($_POST);
  •         add_slashes($_COOKIE);
  • }
  • function add_slashes($string) {
  •        if (is_array($string)) {
  •            foreach ($string as $key => $value) {
  •                $string[$key] = add_slashes($value);
  •             }
  •         } else {
  •            $string = addslashes($string);
  •         }
  •        return $string;
  • }
  •         
        php防注入函数,字符过滤函数
                       //解码
        function htmldecode($str)
        {
        if(empty($str)) return;
        if($str=="") return $str;
        $str=str_replace("select","select",$str);
        $str=str_replace("join","join",$str);
        $str=str_replace("union","union",$str);
        $str=str_replace("where","where",$str);
        $str=str_replace("insert","insert",$str);
        $str=str_replace("delete","delete",$str);
        $str=str_replace("update","update",$str);
        $str=str_replace("like","like",$str);
        $str=str_replace("drop","drop",$str);
        $str=str_replace("create","create",$str);
        $str=str_replace("modify","modify",$str);
        $str=str_replace("rename","rename",$str);
        $str=str_replace("alter","alter",$str);
        $str=str_replace("cas","cast",$str);
        $str=str_replace("&","&",$str);
        $str=str_replace(">",">",$str);
        $str=str_replace("&lt;","<",$str);
        $str=str_replace("&nbsp;",chr(32),$str);
        $str=str_replace("&nbsp;",chr(9),$str);
        // $str=str_replace("&#160;&#160;&#160;&#160;",chr(9),$str);
        $str=str_replace("&",chr(34),$str);
        $str=str_replace("&#39;",chr(39),$str);
        $str=str_replace("<br />",chr(13),$str);
        $str=str_replace("''","'",$str);
        return $str;
        }
       
       
       
        //编码
        function htmlencode($str)
        {
        if(empty($str)) return;
        if($str=="") return $str;
        $str=trim($str);
        $str=str_replace("&","&amp;",$str);
        $str=str_replace(">","&gt;",$str);
        $str=str_replace("<","&lt;",$str);
        $str=str_replace(chr(32),"&nbsp;",$str);
        $str=str_replace(chr(9),"&nbsp;",$str);
        // $str=str_replace(chr(9),"&#160;&#160;&#160;&#160;",$str);
        $str=str_replace(chr(34),"&",$str);
        $str=str_replace(chr(39),"&#39;",$str);
        $str=str_replace(chr(13),"<br />",$str);
        $str=str_replace("'","''",$str);
        $str=str_replace("select","sel&#101;ct",$str);
        $str=str_replace("join","jo&#105;n",$str);
        $str=str_replace("union","un&#105;on",$str);
        $str=str_replace("where","wh&#101;re",$str);
        $str=str_replace("insert","ins&#101;rt",$str);
        $str=str_replace("delete","del&#101;te",$str);
        $str=str_replace("update","up&#100;ate",$str);
        $str=str_replace("like","lik&#101;",$str);
        $str=str_replace("drop","dro&#112;",$str);
        $str=str_replace("create","cr&#101;ate",$str);
        $str=str_replace("modify","mod&#105;fy",$str);
        $str=str_replace("rename","ren&#097;me",$str);
        $str=str_replace("alter","alt&#101;r",$str);
        $str=str_replace("cast","ca&#115;",$str);
        return $str;
        }
转自:http://www.cnzzad.com/tut/56853.html
该会员没有填写今日想说内容.

升级  93.67%

0

主题

0

主题

0

主题

举人

Rank: 3Rank: 3

积分
481
发表于 2013-12-26 01:45:12 | 显示全部楼层
做个记号,下次好找!












19V2A电源适配器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表