Дилемма исходит из системы плагинов, в которой мы пытаемся внедрить процедуры безопасности, которые ограничивают плагин использованием только данных, которые наша система передает на него.PHP ограничивает доступ к суперглобалам или перемещает переменные данные
Опасность исходит от паролей или других конфиденциальных данных, которые могут присутствовать в $ _POST или других глобальных переменных.
Первоначальная идея, в попытке ограничить доступ к этим глобалов, было бы скопировать данные, пустой глобальный, и заменить его после того, как плагин называется:
$tmpPost = $_POST;
$_POST = [];
pluginCall();
$_POST = $tmpPost;
unset($tmpPost);
Проблема, которую я предвижу эффективности и использования памяти. Как насчет страниц с большими объемами входных данных, таких как загрузка файлов? Мы бы удвоить использование памяти сценария (и я предполагаю, что добавление времени загрузки) копирование данных в другой переменный с:
$tmpPost = $_POST;
Так моя дилемма и вопрос:
Есть Есть способ ограничить доступ к суперглобалам и/или есть ли способ переназначить переменную без ее копирования (по существу, переход)?
Обычный случай скорее всего будет заключаться в том, что вы «доверяете» своим плагинам - так каковы обстоятельства здесь, которые делают это не заданным? Может быть, это скорее вариант, позволяющий плагину в другом контексте выполнения как-то ...? Но это может зависеть от особенностей системы и того, какую работу/цель должны использовать плагины. – CBroe
как насчет 'file_get_contents ('php: // input');'? – ArtisticPhoenix
Вы можете настроить PHP ini только заполнять суперглобалы, когда это необходимо, а затем читать с входного пара. – AnotherGuy