`
stinge
  • 浏览: 153354 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP magic_quotes_gpc的详细使用方法

阅读更多

    我们今天要向大家介绍的是PHP magic_quotes_gpc的具体使用方法。大家都知道在PHP中一个特殊的函数魔术函数,它在引用的过程中只有在传递$_GET,$_POST,$_COOKIE时才会发生作用。

     

    1.
    条件: PHP magic_quotes_gpc=off
    写入数据库的字符串未经过任何过滤处理。从数据库读出的字符串也未作任何处理。

     

    数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

    操作: 将字符串:”snow”’’sun” 写入数据库,

    结果: 出现sql语句错误,mysql不能顺利完成sql语句,写入数据库失败。

    数据库保存格式:无数据。

    输出数据格式:无数据。

    说明: 对于未经处理的单引号在写入数据库时会使sql语句发生错误。

    2.
    条件: PHP magic_quotes_gpc=off
    写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。

    数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

    操作: 将字符串:”snow”’’sun” 写入数据库,

    结果: sql语句顺利执行,数据成功写入数据库

    数据库保存格式:snow”’’sun (和输入一样)

    输出数据格式:snow”’’sun (和输入一样)

    说明: addslashes()函数将单引号转换为\’的转义字符使sql语句成功执行,
    但\’并未作为数据存入数据库,数据库保存的是snow”’’sun 而并不是我们想象的snow\’\’\’\’sun

    3.
    条件: PHP magic_quotes_gpc=on
    写入数据库的字符串未经过任何处理。从数据库读出的字符串未作任何处理。

    数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

    操作: 将字符串:”snow”’’sun” 写入数据库,

    结果: sql语句顺利执行,数据成功写入数据库

    数据库保存格式:snow”’’sun (和输入一样)

    输出数据格式:snow”’’sun (和输入一样)

    说明: PHP magic_quotes_gpc=on 将单引号转换为\’的转义字符使sql语句成功执行,
    但\’并未作为数据入数据库,数据库保存的是snow”’’sun而并不是我们想象的snow\’\’\’\’sun。

    4.
    条件: PHP magic_quotes_gpc=on
    写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。

    数据:  $data=”snow”’’sun” ; (snow和sun之间是四个连续的单引号).

    操作: 将字符串:”snow”’’sun” 写入数据库,

    结果: sql语句顺利执行,数据成功写入数据库

    数据库保存格式:snow\’\’\’\’sun (添加了转义字符)

    输出数据格式:snow\’\’\’\’sun (添加了转义字符)

    说明: PHP magic_quotes_gpc=on 将单引号转换为\’的转义字符使sql语句成功执行,
    addslashes又将即将写入数据库的单引号转换为\’,后者的转换被作为数据写入
    数据库,数据库保存的是snow\’\’\’\’sun

    总结如下:
    1. 对于PHP magic_quotes_gpc=on的情况,

    我们可以不对输入和输出数据库的字符串数据作
    addslashes()和stripslashes()的操作,数据也会正常显示。

    如果此时你对输入的数据作了addslashes()处理,
    那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。

    2. 对于PHP magic_quotes_gpc=off 的情况

    必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出
    因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。

    补充:

    PHP magic_quotes_gpc作用范围是:WEB客户服务端;作用时间:请求开始时,例如当脚本运行时.
    magic_quotes_runtime 作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;作用时间:每次当脚本访问运行状态中产生的数据

    来源:http://developer.51cto.com/art/200911/165392.htm

分享到:
评论

相关推荐

    get_magic_quotes函数详解

    本文将详细介绍这两个函数的功能、使用方法以及它们在PHP中的作用。 #### `get_magic_quotes_gpc()` 函数 `get_magic_quotes_gpc()` 是一个用于检测PHP是否开启了Magic Quotes GPC功能的函数。Magic Quotes GPC是...

    php中get_magic_quotes_gpc()函数说明

    如果`magic_quotes_gpc`设置为开启,但开发者想要手动处理字符串转义,应当首先使用`get_magic_quotes_gpc()`检查当前状态。如果返回值为1,说明数据已经自动转义,这时再使用`addslashes()`就会导致双层转义,因此...

    基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍

    magic_quotes_gpc与magic_quotes_runtime是PHP语言中用于自动转义特殊字符的两个配置指令,它们的主要目的是为了防止SQL注入等安全问题。这两个指令对于处理用户输入的数据,尤其是从GET、POST、COOKIE等超全局变量...

    基于PHP magic_quotes_gpc的使用方法详解

    magic_quotes_gpc的使用方法主要围绕其开启(on)和关闭(off)时的行为。当magic_quotes_gpc设置为on时,所有来自客户端的数据都会自动添加转义字符,开发者不需要再手动使用addslashes()函数进行转义。因此,在...

    php-magic-quotes-gpc:在PHP 5.4更高版本上为旧版代码实现magic_quotes_gpc

    PHP魔术引号实现在PHP 5.4更高版本上为旧版代码实现magic_quotes_gpc 如果您要将旧版源代码迁移到上述PHP 5.4版的环境中,但是根据Magic Quotes magic_quotes_gpc SQL保护,其中包括许多易受攻击的数据库查询代码。...

    php magic_quotes_gpc的一点认识与分析

    对于那些仍使用旧版本PHP的环境,了解如何处理开启magic_quotes_gpc的情况同样重要,因为这关系到网站的安全性和用户体验。总之,处理好magic_quotes_gpc的设置,可以帮助开发者更好地掌握数据处理的安全性和效率...

    PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法

    php $magic_quotes_gpc = get_magic_quotes_gpc(); @extract(daddslashes($_COOKIE)); @extract(daddslashes($_POST)); @extract(daddslashes($_GET)); if(!$magic_quotes_gpc) { $_FILES = daddslashes($_FILES); }...

    PHP的特殊字符转译函数使用.pdf

    例如,如果检测到magic_quotes_gpc关闭(get_magic_quotes_gpc()返回0),则可以使用addslashes()函数: ```php if (!get_magic_quotes_gpc()) { $prot = addslashes($prot); } ``` 在使用addslashes()函数时,...

    php中magic_quotes_gpc对unserialize的影响分析

    主要介绍了php中magic_quotes_gpc对unserialize的影响,以实例的形式分析了magic_quotes_gpc安全过滤对unserialize造成的影响以及对此的解决方法,非常具有实用价值,需要的朋友可以参考下

    深入PHP magic quotes的详解

    特地查看了下手册,关于php magic quotes,常见的几个设置如下,magic_quotes_gpc,magic_quotes_sybase,magic_quote_runtime,这几个函数是在php.ini中去配置的,从手册中可以看出从php5.3后已经废除了这些特性,...

    PHP 转义使用详解

    php中数据的魔法引用函数 magic_quotes_gpc 或 magic_quotes_runtime  设置为on时,为我们引用的数据碰到 单引号’ 和 双引号” 以及 反斜线\ 时自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行两者...

    浅谈开启magic_quote_gpc后的sql注入攻击与防范

    在PHP中,`magic_quotes_gpc`是早期用来防御SQL注入的一种机制,但现在已经不再推荐使用。 `magic_quotes_gpc`是PHP的一个配置选项,当设置为`on`时,它会在请求开始时自动对GET、POST和COOKIE数据添加反斜杠(\)...

    php参数过滤、数据过滤类

    中开启magic_quotes_gpc和magic_quotes_runtime。magic_quotes_gpc可以把get,post,cookie里的引号变为斜杠。magic_quotes_runtime对于进出数据库的数据可以起到格式话的作用。其实,早在以前注入很疯狂时,这个参数...

    PHP daddslashes 使用方法介绍

    **PHP daddslashes 使用方法** 在PHP中,`daddslashes`函数是一个用户自定义的辅助函数,用于处理字符串中的特殊字符,特别是那些可能影响数据库操作的字符。它与内置的`addslashes`函数相似,但增加了递归处理数组...

Global site tag (gtag.js) - Google Analytics