yidas / magic-quotes-gpc
在PHP 5.4及更高版本上实现 legacy 代码的 magic_quotes_gpc
1.1.0
2018-03-24 07:29 UTC
This package is auto-updated.
Last update: 2024-09-10 21:04:52 UTC
README
在PHP 5.4及更高版本的后续版本上实现 legacy 代码的 magic_quotes_gpc
如果您正在将 legacy 源代码迁移到 PHP 版本 5.4 及以上版本的环境,但包含许多依赖于 Magic Quotes magic_quotes_gpc
SQL 保护的有漏洞的数据库查询代码。只需使用这个来在新版本的 PHP 上顺畅运行,就像过去一样。
关于 PHP 的警告Magic Quotes
自 PHP 5.3.0 起已弃用 Magic Quotes 功能,自 PHP 5.4.0 起已移除。
演示
print_r($_GET); MagicQuotesGpc::init(); print_r($_GET);
在访问包含查询 ?username=1' OR '1'='1
的 URL 后,输出将是
Array ( [username] => 1' OR '1'='1 )
Array ( [username] => 1\' OR \'1\'=\'1 )
递归输入数据关注
将处理来自 $_POST
、$_COOKIE
以及 $_GET
的递归数据输入
$_POST['users'][0] = ['username'=>"1' OR '1'='1"]; print_r($_POST); MagicQuotesGpc::init(); print_r($_POST);
在模拟 $_POST
数据分配后,输出将是
Array ( [users] => Array ( [0] => Array ( [username] => 1' OR '1'='1 ) ) )
Array ( [users] => Array ( [0] => Array ( [username] => 1\' OR \'1\'=\'1 ) ) )
安装
通过 Composer 安装
在您的 legacy 项目中运行 Composer
composer require yidas/magic-quotes
然后在应用的引导(如 config
文件)中初始化它
require __DIR__ . '/vendor/autoload.php'; MagicQuotesGpc::init();
通过加载类直接安装
加载 MagicQuotesGpc.php
并初始化它
require __DIR__ . '/MagicQuotesGpc.php'; MagicQuotesGpc::init();