Laravel、環境はURLから設定しない

タグ: Laravel3   Laravel4  

環境は、ホスト名から取得するか、環境変数から取得するようにし、URLからは設定しないことが勧められています。

(追記:リンク先の内容が代わってしまったため、削除しました。)

URLは偽れる可能性があるため、例えば本番環境を"local"環境に変更できると、プロファイルのデバッグ情報などが標示される可能性があります。ですから、URLにより、環境を設定することは、脆弱性を含む可能性があるためおすすめできないようです。

ローカル名も共有サーバーなどでホストしていると、バレる可能性が多少はあります。(ドメインからIPを突き止め、そのサービスで同じサーバーを借り、操作パネルの内容、もしくはSSH接続などからホスト名を得る。)

そのため、一番安全な方法は環境変数により、設定する方法です。既に色々な所で紹介されていますが、以下のようにstart.phpを設定しましょう。

Laravel4の場合でしたら:

$env = $app->detectEnvironment(function(){
    return isset($_SERVER['APP_ENV']) ? $_SERVER['APP_ENV'] : 'development';
});

後はシェルや、.htaccessの設定でAPP_ENV環境変数を決定しましょう。