我使用的是Symfony 2 php框架,它有几个不同的使用环境:开发,生产和测试。 app.php前端控制器访问生产环境,app_dev.php前端控制器访问开发环境。任何熟悉Symfony的人都可以建议将开发环境限制为开发人员的最佳方法是什么?我不希望我的网站用户可以查看我的网络应用程序的开发版本,他们应该被限制使用生产环境。
答案 0 :(得分:10)
嗯,开箱即用,标准发行版在top of the dev controller进行了基于IP的后卫检查。
// 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'], array(
'127.0.0.1',
'::1',
))
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
但是,正如评论所表明的那样,你不会对这种做法感到满意。例如,如果您正在运行Apache,则可以add basic HTTP Authentication到开发人员和测试控制器。