3
我正在使用Symfony 2 php框架,它有幾個不同的使用環境:開發,生產和測試。 app.php前端控制器訪問生產環境,app_dev.php前端控制器訪問開發環境。任何熟悉Symfony的人都可以建議將開發環境限制爲開發人員的最佳方式是什麼?我不希望我的網站應用程序的開發版本能夠被我的網站用戶查看,但它們應該僅限於使用生產環境。Symfony 2 app.php vs app_dev.php
我正在使用Symfony 2 php框架,它有幾個不同的使用環境:開發,生產和測試。 app.php前端控制器訪問生產環境,app_dev.php前端控制器訪問開發環境。任何熟悉Symfony的人都可以建議將開發環境限制爲開發人員的最佳方式是什麼?我不希望我的網站應用程序的開發版本能夠被我的網站用戶查看,但它們應該僅限於使用生產環境。Symfony 2 app.php vs app_dev.php
那麼,標準發行版在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發送給開發人員和測試控制器。
還應該提到,僅僅不將app_dev.php文件上傳到生產服務器也是一種選擇。 – Sgoettschkes 2012-04-24 21:49:13
例如,Capifony會在部署時刪除所有應用程序_ *。php文件,以防止將陌生環境泄漏到生產服務器。 – 2013-03-14 08:56:11
任何黑帽黑客都可以生成繞過該控制器中的檢查所需的所有$ _SERVER設置。雖然它會過濾大多數懶惰的攻擊者,但如果您需要從服務器運行開發控制檯,則最少需要基本的http身份驗證。 **最好的**想法是假定它不屬於服務器,並堅持正常部署的做法。 – 2013-03-25 01:52:56