zoukankan      html  css  js  c++  java
  • php get_magic_quotes_gpc() addslashes()

    最近学了学PHP,看到这段代码

     function daddslashes($str){
           return (!get_magic_quotes_gpc())?addslashes($str):$str;
       }

    发现get_magic_quotes_gpc())和addslashes()函数不太熟悉,就查了下资料,如下:

     get_magic_quotes_gpc();就是取得php环境变量magic_quotes_gpc的值。如果值为1时,表示开启;如果为0时,表示该配置关闭!

    1.  get_magic_quotes_gpc();值为1,表示开启。那么 php会自动为POST、GET、COOKIE传过来的参数值自动增加转义字符“”,来确保这些数据的安全性。尤其是防止SQL注入。

    2.  get_magic_quotes_gpc();值为0,表示关闭。php解析器不会自动为POST、GET、COOKIE传过来的参数值加转义字符“”,那么这时就用addslashes函数来转义参数了。

    •  get_magic_quotes_gpc();未开启,用addslashes函数过滤参数防止注入示例:

      <?php

      $str=$_POST['str'];

      if(!get_magic_quotes_gpc()){//首先判断未开启

      $newStr=addslashes($str);//然后用addslashes函数过滤

      }

      ?>

      • addslashes() 函数在指定的预定义字符前添加反斜杠。

        这些预定义字符是:

        • 单引号 (')
        • 双引号 (")
        • 反斜杠 ()
        • NULL
    • 默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
    • 讲得还蛮清楚的,所以就收藏起来了!!!

    注明:源自网络

  • 相关阅读:
    expdp定时备份
    设计模式简介
    利用Python制作万年历
    Linux下Python的安装
    排序算法-直接插入排序
    排序算法-冒泡排序
    数据结构-循环顺序队列&链队列
    数据结构-栈&链栈
    数据结构-双向链表&双向循环链表
    数据结构-单链表&单循环链表
  • 原文地址:https://www.cnblogs.com/QMM2008/p/4179100.html
Copyright © 2011-2022 走看看