博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php get_magic_quotes_gpc() addslashes()
阅读量:5922 次
发布时间:2019-06-19

本文共 933 字,大约阅读时间需要 3 分钟。

最近学了学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() 进行检测。
  • 讲得还蛮清楚的,所以就收藏起来了!!!

注明:源自网络

转载于:https://www.cnblogs.com/QMM2008/p/4179100.html

你可能感兴趣的文章
Codeforces 292D Connected Components (并查集)
查看>>
洛谷P1209 修理牛棚 贪心
查看>>
社会化海量数据采集爬虫框架搭建
查看>>
【笔记】wamp mysql配置密码,设置phpmyadmin不自动登录
查看>>
JavaScript创建对象的9种方式
查看>>
转一篇Linux可用内存的统计方法
查看>>
oracle的一些孤僻性错误(OCIEnvCreate failed)
查看>>
settings.xml配置的镜像
查看>>
isted系列教程三–开始twisted
查看>>
《软件需求十步走》阅读笔记4
查看>>
OUTLOOK之不能直接发送邮件的Mapi错误解决方法
查看>>
( 转 ) Android自绘字体大小paint.settextsize随分辨率大小变化
查看>>
关于MySql链接url参数的设置 专题
查看>>
Python 目录操作(转)
查看>>
java 二维码原理以及用java实现的二维码的生成、解码(转)
查看>>
log4net小结
查看>>
支线任务-4
查看>>
【PHP】最详细PHP从入门到精通(一)——想学习PHP的朋友们福利来了!
查看>>
[android] 帧布局
查看>>
iis6 zencart1.39 伪静态规则
查看>>