gongo/merciful-polluter

在 PHP 5.4 或更高版本中模拟 `register_globals` 和 `magic_quotes_gpc`

0.0.7 2024-05-14 00:58 UTC

This package is auto-updated.

Last update: 2024-09-14 15:27:07 UTC


README

为缓解 register_globalsmagic_quotes_gpc 的难民。

CI status Coverage Status Scrutinizer Code Quality

描述

在 PHP 5.4 中,暴力指令(register_globalsmagic_quotes_gpc)已被移除。但有些系统可能仍然依赖它们。

此库在 PHP 5.4 及以后的版本中重现这些功能。 救赎

用法

<?php
/**
 * example.com/?foo=3&bar=12
 */

(new Gongo\MercifulPolluter\Request)->pollute();

global $foo, $bar;
var_dump($foo, $bar);

/**
 * int(3)
 * int(12)
 */

安装

将这些行添加到您的应用程序的 composer.json

{
    "require": {
        "gongo/merciful-polluter": "*"
    }
}

然后执行

$ composer install

或自行安装:

$ composer require gongo/merciful-polluter

另请参阅: https://packagist.org.cn/packages/gongo/merciful-polluter

特性

模拟 register_globals

将这些行添加到您的应用程序入口点(例如 auto_prepend_file

<?php
$request = new Gongo\MercifulPolluter\Request;
$request->pollute();

// main routine...

如果使用会话,请在 session_start() 之后调用 Gongo\MercifulPolluter\Session::pollute()

session_start();

/**
 * $_SESSION['user_id'] = 'gongo'
 */

(new Gongo\MercifulPolluter\Session)->pollute();

var_dump($user_id); // string(5) "gongo"

// Reference global variables to session.
$user_id = 'taro';
var_dump($_SESSION['user_id']); // string(4) "taro"

模拟 magic_quotes_gpc

如果想要应用 magic_quotes_gpc,请调用 Gongo\MercifulPolluter\Request::enableMagicQuotesGpc()

<?php
/**
 * example.com/?foo=1'2'3
 */

$request = new Gongo\MercifulPolluter\Request;
$request->enableMagicQuotesGpc();
$request->pollute();

// $_GET['foo'] => "1\'2\'3"
//        $foo  => "1\'2\'3"

许可

MIT 许可证。