3

我正在使用 Symfony 2 php 框架,它有几个不同的使用环境:开发、生产和测试。app.php 前端控制器访问生产环境,app_dev.php 前端控制器访问开发环境。任何熟悉 Symfony 的人都可以建议将开发环境限制为开发人员的最佳方式吗?我不希望我的网站的用户可以查看我的 Web 应用程序的开发版本,他们应该仅限于使用生产环境。

4

1 回答 1

10

好吧,开箱即用,标准发行版在开发控制器的顶部有一个基于 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,则可以将基本 HTTP 身份验证添加到开发和测试控制器。

于 2012-04-24T19:54:01.713 回答