• Linux
  • apache
  • centos
  • Git版本管理
  • Linux基本命令
  • linux配置与优化
  • Nginx
  • PHP
  • Redis
  • Supervisor
  • Swoole
  • windows
  • THINKPHP
  • 开发者手册
  • Chat GPT / Open Ai
  • PHP5,6,7版本中如何使用magic_quotes_gpc转义数据保证安全

    全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2021年03月05日 23:24:04
  • 所属分类:PHP+MySql
  • 阅读次数:1946次阅读
  • 标签:
  • 在PHP5版本有这样一个函数,magic_quotes_gpc函数,作用是在php中的判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以保证这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。

    可是在PHP6和PHP7中已经取消了这个函数,这时候我们需要自己定义一个函数来保证数据是否需要转义。

    function quotes_gpc_pd($gpc_value,$gpc_pd){ //转义字符   注意:checkbox[]数组时不能用这个,要不implode出错
         
        if (!get_magic_quotes_gpc()) {//判断一下是否支持magic_quotes_gpc,如果不支持就利用addslashes转义。
            $gpc_value = addslashes($gpc_value);    // delete backslash(\)
        }
         
        if ($gpc_pd=='1') {
            $gpc_value=htmlspecialchars($gpc_value,ENT_COMPAT,'ISO-8859-1');
        }
         
        return $gpc_value; 
         
    }

    实际在POST接收数据时,可以这样写:

    $password=quotes_gpc_pd($_POST['password'],1);

    其中的参数1表示需要htmlspecialchars转换。如果标记为0表示不用转换,这主要是为了比如在文章发布的时候有用到像百度编辑器Ueditor这种可以自行转换为html实体的插件,就没有必要再执行一次了,否则数据就错乱了。

    顶一下
    (0)
    100%
    订阅 回复
    踩一下
    (0)
    100%
    » 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
  • 【上一篇】
  • 【下一篇】
  • 目前有 0 条留言 其中:访客:0 条, 博主:0 条

    给我留言

    您必须 [ 登录 ] 才能发表留言!