#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);
$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.');
}