0

$_REQUEST当我多次告诉他们不要使用变量而是使用$_POSTand时,与我一起工作的团队继续使用变量$_GET。我想知道是否有办法阻止这个变量,所以如果他们再次使用它,代码会给出致命错误。或者也许以某种方式弃用它。

例如,我可以放入unset($_REQUEST);包含文件的顶部,但我敢打赌他们可以找到它并禁用它,我需要能够在服务器端执行此操作。

4

2 回答 2

1

我不确定任何官方方式,甚至request_order 并不意味着它将超级全局数组 REQUEST 留空。

您可以做的是拥有自己的小型扫描仪.. 在代码中查找 REQUEST ..(请注意,这只是一个实验)

ini_set("display_erros", "On");
error_reporting(E_ALL);
set_time_limit(0);

findUsage(__DIR__,'$_REQUEST');

输出示例

$_REQUEST Found in /public_html/www/stockoverflow/a.php Line 7 
$_REQUEST Found in /public_html/www/stockoverflow/c.php Line 3 
$_REQUEST Found in /public_html/www/stockoverflow/lib/phpThumb/demo/index.php Line 2 
$_REQUEST Found in /public_html/www/stockoverflow/lib/phpThumb/demo/phpThumb.demo.gallery.php Line 36 
$_REQUEST Found in /public_html/www/stockoverflow/lib/phpThumb/demo/phpThumb.demo.gallery.php Line 45 
$_REQUEST Found in /public_html/www/stockoverflow/lib/phpThumb/demo/phpThumb.demo.gallery.php Line 47 
$_REQUEST Found in /public_html/www/stockoverflow/lib/phpThumb/demo/phpThumb.demo.gallery.php Line 4

使用的功能

function findUsage($projectDir,$find) {
    echo "<pre>";
    $di = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__, FilesystemIterator::SKIP_DOTS));
    foreach ( $di as $file ) {
        if (! $file->isFile() || $file->getExtension() != "php")
            continue;
        $n = 0;
        foreach ( file($file) as $line ) {
            $n ++;
            if (strpos($line, $find) !== false) {
                echo $find, " Found in $file Line $n \n";
                flush();
            }
        }
    }
}
于 2012-10-18T18:04:17.307 回答
-1

如果您想这样做以使您的代码安全,您可以自己制作$_Request并且它是安全的(将其放入引导程序中)

$_REQUEST = array_merge($_GET, $_POST); 
于 2012-10-18T17:24:22.543 回答