资讯专栏INFORMATION COLUMN

php关于get_magic_quotes_gpc()方法的使用

enda / 3288人阅读

摘要:可以用检测系统设置。简单用法,添加转义过滤也可以在项目程序初始化时应用该方法构造函数构造应用程序对象初始化运行环境禁止处理被自动转义过的数据解析被转义过的数据配置

magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符(单引号,双引号,反斜线)引起的污染而出现致命的错误。

在php的配置文件中,有个布尔值的设置,就是magic_quotes_runtime,当它打开时,php的大部分函数自动的给从外部引入的(包括数据库或者文件)数据中的溢出字符加上反斜线。 当然如果重复给溢出字符加反斜线,那么字符串中就会有多个反斜线,所以这时就要用set_magic_quotes_runtime()与get_magic_quotes_runtime()设置和检测php.ini文件中magic_quotes_runtime状态。 为了使自己的程序不管服务器是什么设置都能正常执行。可以在程序开始用get_magic_quotes_runtime检测该设置的状态决定是否要手工处理,或者在开始(或不需要自动转义的时候)用set_magic_quotes_runtime(0)关掉该设置。

magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的""加上反斜

线。可以用get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用
addslashes()函数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(")、双引号(")、反斜线()与 NUL(NULL 字符)。

简单用法,添加转义过滤:

if(!get_magic_quotes_gpc())
{
    addslashes($prot);
}

也可以在项目程序初始化时应用该方法:

 /**
     * 构造函数
     *
     * 构造应用程序对象
     */
    protected function __construct()
    {
        
        // 1.初始化运行环境
        
        // 1.1 禁止 magic quotes
        set_magic_quotes_runtime(0);

        // 1.2 处理被 magic_quotes_gpc 自动转义过的数据
        if (get_magic_quotes_gpc())
        {
            $in = array(& $_GET, & $_POST, & $_COOKIE, & $_REQUEST);
            while (list ($k, $v) = each($in))
            {
                foreach ($v as $key => $val)
                {
                    if (! is_array($val))
                    {
                        // 解析被转义过的数据
                        $in[$k][$key] = stripslashes($val);
                        continue;
                    }
                    $in[] = & $in[$k][$key];
                }
            }
            unset($in);
        }
  }

php配置:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21856.html

相关文章

  • PHP在引号前面添加反斜杠及去除反斜杠办法

    摘要:程序为了防注入或者溢出,通过指令自动在双引号单引号反斜杠前面添加反斜杠。用法,输出的结果就是去掉反斜杠的。解决办法就是可以使用函数进行检测,如果是打开的状态,那么就去除反斜杠,如果是关闭的状态,则不去除反斜杠。 PHP程序为了防注入或者溢出,通过PHP 指令 magic_quotes_gpc自动在双引号、单引号、反斜杠、NULL前面添加反斜杠。 默认PHP 指令 magic_quote...

    Jeff 评论0 收藏0
  • php常用安全过滤函数

    摘要:由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题因为框架已经帮我们几乎完美的处理了但是,个人认为,我们还是需要了解一下常用的安全处理函数原因简单很多小的功能和项目是用不到框架的,我们需要自己解决安全问题常用的安全函数有 由于越来越多的项目开始使用框架,所以,很多的程序员也不在关心安全的问题!因为框架已经帮我们几乎完美的处理了!但是,个人认为,我们还是需要了解一下常...

    niceforbear 评论0 收藏0
  • PHP magic_quotes_gpc详细使用方法

    摘要:中的是配置在中的,他的作用类似,就是对输入的字符创中的字符进行转义处理。描述返回字符串,该函数可用于清理从数据库中或者从表单中取回的数据 php中的magic_quotes_gpc是配置在php.ini中的,他的作用类似addslashes(),就是对输入的字符创中的字符进行转义处理。他可以对$_POST、$__GET以及进行数据库操作的sql进行转义处理,防止sql注入。 对于PHP...

    Cristic 评论0 收藏0
  • 8个很有用PHP安全函数,你知道几个?

    摘要:原文译文有用的安全函数译者安全是编程非常重要的一个方面。一起看看中常用的可以确保项目安全的函数。现在这个函数并不被认为是安全的,因为开源的数据库可以反向检查一个散列值的明文。也不要把绝对安全寄托在这个函数上,否则会有意想不到的结果。 showImg(https://segmentfault.com/img/bVksck); 原文:Useful functions to provide...

    Meils 评论0 收藏0
  • PHP八大安全函数解析

    摘要:所以在各种的开发语言中,都会提供保证用户输入数据安全的函数。不要笑,我知道这不是一个和安全相关的函数,它是在将变量转成整数类型。但是,你可以用这个函数让你的代码更安全,特别是当你在解析,年龄这样的数据时。 在现代互联网中,我们经常要 从世界各地的用户中获得输入数据。但是,我们都知道永远不能相信那些用户输入的数据。所以在各种的Web开发语言中,都会提供保证用户输入数据安全的函数。在PHP...

    OBKoro1 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<