Как отключить режим разработки symfony и профилировщик в версии 3.2.13

#php #symfony

#php #симфония

Вопрос:

Я новичок в Symfony. Я уже разработал проект Symfony API для мобильного приложения, и я вижу, что есть проблема с безопасностью. Профилировщик доступен извне, любой может проверить запрос API, используя URL.

http://hostName/test-api/web/app_dev.php/_profiler/empty/search/results ?ограничение =10

Ниже приведен API для входа в мобильное приложение. http://hostName/test-api/web/app_dev.php/app/sign-in

Могу ли я узнать, как удалить среду разработки и профилировщик?

Ответ №1:

вы не должны раскрывать app_dev.php файл. Этот файл используется только для среды разработки, как указано в документации.

Среда определяется здесь, в dev

 $kernel = new AppKernel('dev', true);
  

и здесь для prod

 $kernel = new AppKernel('prod', false);
  

Итак, вам нужно предоставить свои сервисы, предоставив app.php . Таким образом, все пакеты разработкипохожи на пакеты, перечисленные на AppKernel.php и конфигурации не будут загружены

Комментарии:

1. GrenierJ. Спасибо. Это сработало, мне также пришлось внести некоторые другие изменения. Теперь разработчик недоступен для других.

Ответ №2:

Я решил эту проблему. Необходимо раскомментировать приведенный ниже код.

 // This check prevents access to debug front controllers that are deployed by
// accident to production servers. Feel free to remove this, extend it, or make
// something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !(in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', 'fe80::1', '::1']) || php_sapi_name() === 'cli-server')
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}