Задать вопрос
danial72
@danial72
flutter dart.

Как запретить использование стандартных функций php?

Пишу pet проект - поделка в стиле AWS.
Хочу запретить использование абсолютно всех функций встроенных php , встал вопрос как это вообще возможно ?
Перекомплилировать бинарник ?
  • Вопрос задан
  • 147 просмотров
Подписаться 1 Простой 14 комментариев
Решения вопроса 1
@bkosun
Виртуальная машина PHP

Экземпляр класса Runkit_Sandbox создает отдельный поток основного процесса с собственным окружением и выделенной областью памяти (стеком). С помощью дополнительных параметров конструктора можно ограничивать функционал интерпретатора в песочнице, создавая таким образом безопасное окружение для выполнения пользовательского кода.


$options = array(
  'safe_mode'=>true,
  'open_basedir'=>'/var/www/users/jdoe/',
  'allow_url_fopen'=>'false',
  'disable_functions'=>'exec,shell_exec,passthru,system',
  'disable_classes'=>'myAppClass',
);

$sandbox = new Runkit_Sandbox($options);

$sandbox->ini_set('html_errors', true);

// ...

$sandbox->eval('var_dump(isset($foo));');


https://php.net/manual/ru/runkit.sandbox.php

UPD: Так же есть сторонние библиотеки, например:

https://github.com/Corveda/PHPSandbox
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
anton_reut
@anton_reut
Начинающий веб-разработчик
Сделать скрытый "словарь" запрещенных функций и весь код каждый раз прогонять через этот фильтр, если там есть встроенные функции которые есть в словаре то die().
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Как тебе уже не один раз сказали в комментариях, надо выкинуть эту дурь из головы и сделать парсер для ввода. Тем более что у тебя математика, для которой готовых парсеров как грязи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы