`
chengxianju
  • 浏览: 256477 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

magic_quotes_gpc和magic_quotes_runtime

    博客分类:
  • php
阅读更多

1、PHP中set_magic_quotes_runtime()函数的作用:
此函数来修改PHP.ini文件中的 magic_quotes_runtime 变量的状态,如果想获得magic_quotes_runtime 变量的状态用get_magic_quotes_runtime这个函数如果返回0表示本功能被关闭,如果返回1表示本功能已经开启。 magic_quotes_runtime的功能是当它被开启的时候所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。比如:用户向数据库提交的数据中含有\" '这些符号的时候它就会在这些符号的前面自动加上"\"转义符。
这个属性在PHP4以前的版本都是默认关闭的,PHP4.0以后的版本如果程序要用到将它关闭的时候直接写成set_magic_quotes_runtime(0)将其关闭。

2.get_magic_quotes_gpc函数作用:

此函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示关闭本功能;返回 1 表示本功能打开。当

magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动加上转义符\;

默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

其实这个函数就是判断有PHP有没有自动调用addslashes 这个函数,


区别:

1.magic_quotes_runtime 可以通过set_magic_quotes_runtime()和 get_magic_quotes_runtime() 来进行设置和读取 ; magic_quotes_gpc() 只可以通过get_magic_quotes_gpc()来读取 没有set_magic_quotes_gpc()这样的函数 也不能通过ini_set('magic_quotes_gpc',1) 这样来设置 他只能通过手动在php.ini文件中修改;

2 magic_quotes_gpc 处理的是post \get\cookie 传递过来的内容

magic_quotes_rumtime 处理的是数据库 或文件中的内容


set_magic_quotes_runtime() 和 get_magic_quotes_runtime() 是


get_magic_quotes_gpc会将Get/Post/Cookie中所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符加上反斜杠转义。

get_magic_quotes_runtime设置为on的时候会将数据库中取出来的 ' (单引号), " (双引号), \ (反斜线)这些字符加上反斜杠转义。

get_magic_quotes_gpc并不能通过程序来关闭 ,get_magic_quotes_runtime可以通过程序来关闭,set_magic_quotes_runtime(0)并不就是关闭了魔法引用,Get/Post/Cookie中的数据还是会被转义的(如果gpc开着在的话),设置这个是取数据的时候强制关闭着,防止取出的时候被再次转义。

如果get_magic_quotes_gpc开着就不要在mysql_escape_string 或者mysql_real_escape_string或者addslashes了,防止多次转义,但是对于用户的输入转义是必须要使用的,无论你是addslashes还是mysql_escape_string还是get_magic_quotes_gpc自动处理甚至是使用str_replace或正则替换都行。但一次就够了。

分享到:
评论

相关推荐

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

    在PHP 5.4.0之后的版本中,magic_quotes_gpc和magic_quotes_runtime两个指令已经被废弃,不再使用,PHP建议开发者使用filter扩展来进行数据过滤和清理。但在一些老旧的PHP应用中,仍然可能会遇到这两个配置项。 在...

    get_magic_quotes函数详解

    `get_magic_quotes_gpc()` 和 `get_magic_quotes_runtime()` 函数是PHP早期版本中用于自动转义用户提交的数据以防止SQL注入等安全问题的两个函数。本文将详细介绍这两个函数的功能、使用方法以及它们在PHP中的作用。...

    php magic_quotes_gpc的一点认识与分析

    2. magic_quotes_runtime:如果启用,从外部源获取数据的大多数函数,包括数据库和文本文件,将自动转义引号。可以在运行时设置,并且默认是关闭的。 3. magic_quotes_sybase:如果启用,单引号将被单引号转义,而...

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

    如果服务器的magic_quotes_gpc设置为关闭,可以在必要时使用set_magic_quotes_runtime(0)关闭自动转义功能。 重要的是要注意,在PHP6中已经移除了magic_quotes_gpc选项,这意味着所有的编程都需要在magic_quotes_...

    php参数过滤、数据过滤类

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

    PHP 转义使用详解

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

    php参数过滤、数据过滤类.zip

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

    深入PHP magic quotes的详解

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

    PHP daddslashes 使用方法介绍

    `magic_quotes_gpc`和`magic_quotes_runtime`的主要区别在于它们的作用范围和时机: - `magic_quotes_gpc`:作用于web客户端的数据,比如GET、POST和COOKIE数据,会在请求开始时自动进行转义。 - `magic_quotes_...

    php常用的安全过滤函数集锦

    在讨论mysql_real_escape_string()和addslashes()之前,了解get_magic_quotes_gpc()和get_magic_quotes_runtime()两个函数同样重要。这两个函数用于检查PHP配置文件php.ini中是否开启了magic_quotes_gpc和magic_...

    基于PHP编程注意事项的小结

    在PHP编程中,需要注意一些关键点以确保代码的正确性和高效性。以下是对这些要点的详细解释: ...同时,时刻关注服务器配置,如`magic_quotes_gpc`和`magic_quotes_runtime`,确保数据处理的一致性和安全性。

    php中序列化与反序列化详解

    另外,PHP的配置项magic_quotes_gpc和magic_quotes_runtime会对序列化和反序列化过程产生影响。magic_quotes_gpc是一个在PHP 5.4.0之前用于自动转义GPC(GET、POST、COOKIE)请求数据的特性。如果magic_quotes_gpc是...

    PHP 选项及相关信息函数库

     get_magic_quotes_gpc : 取得 PHP 环境变量 magic_quotes_gpc 的值。 get_magic_quotes_runtime : 取得 PHP 环境变量 magic_quotes_runtime 的值。 getlastmod : 返回该网页的最后

    PHP中的序列化和反序列化

    `magic_quotes_gpc`和`magic_quotes_runtime`是两个旧版的PHP配置选项,它们会影响数据的处理方式。如果`magic_quotes_gpc`开启,所有通过GET、POST和COOKIE传递的数据都会自动加上反斜杠,所以在反序列化前需要用`...

    iProber v0.01PHP探针

    首先,新增了对`magic_quotes_gpc`和`magic_quotes_runtime`两个参数的检测。这两个参数是PHP历史中的遗留特性,主要涉及输入数据的自动转义。`magic_quotes_gpc`(Get Magic Quotes for Global)会影响所有GET、...

Global site tag (gtag.js) - Google Analytics