Недавно я разместил веб-сайт Symfony 1.3.6. Я решил сохранить frontend_dev.php на сервере, поэтому я могу отлаживать локальную машину, когда это абсолютно необходимо.Как предотвратить появление панели инструментов отладки в среде prod
Я изменил frontend_dev.php так:
<?php
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);
// 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 (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1')))
{
//in case something screwy happens ...
try
{
// die('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
sfContext::createInstance($configuration)->getController()->forward('security', 'error404');
exit();
}
catch(Exception $e)
{
//if we got here, all bets are off anyway, just go away ....
exit();
}
}
sfContext::createInstance($configuration)->dispatch();
То, что я делал, было направить запрос на страницу 404 ошибки. Тем не менее, я заметил, что когда я набрал
Я был направлен на страницу 404 (как я и хотел) - НО была показана панель инструментов отладки - это, очевидно, риск для безопасности. Каков наилучший способ отключить панель инструментов при доступе к контроллеру dev с нелокального компьютера?
Я думал о том, чтобы установить код проверки в действии error404, а затем отключить панель инструментов отладки по мере необходимости, но я не уверен, что это самый симфонический способ сделать это.
Какова наилучшая практика в этом случае?
Лично я только что добавил свой IP-адрес к массиву в вашем коде, чтобы разрешить временный доступ к контроллеру frontend_dev, а затем просто удалил его. – Tom